Commit graph

690 commits

Author SHA1 Message Date
Justin Ethier
309e35c69b Added cont argument to blocking I/O functions 2015-12-22 21:57:00 -05:00
Justin Ethier
f0b992335e Separate cooperation/longjmp from core minor GC 2015-12-23 03:02:52 -05:00
Justin Ethier
9a9b3cc640 Let GC know a thread is (potentially) blocking 2015-12-22 22:24:11 -05:00
Justin Ethier
9de27c2f98 Use a lock to synchronize writes to symbol table 2015-12-21 23:06:10 -05:00
Justin Ethier
be13df2abb Perform deferred free of thread data
Mark a mutator's thread as old when a thread is terminated, and free it at a later time. This is done to prevent race conditions with the collector thread, which could be in the middle of working with a thread's data.
2015-12-21 22:57:36 -05:00
Justin Ethier
c41e80a6ae Prove GC is cooperating w/blocked thread 2015-12-21 22:30:25 -05:00
Justin Ethier
ac9b197803 Remove dead code 2015-12-21 21:34:35 -05:00
Justin Ethier
a5fefda485 WIP - thread cleanup 2015-12-20 22:48:22 -05:00
Justin Ethier
6463b2bf06 Trigger GC prior to thread exit 2015-12-20 21:59:40 -05:00
Justin Ethier
5e4ab77f33 Fix overflow issues with thread-sleep! 2015-12-19 23:25:27 -05:00
Justin Ethier
d9656fc793 Use the name thread-sleep! 2015-12-19 00:22:49 -05:00
Justin Ethier
38c1ca7b31 Added thread_sleep 2015-12-18 23:53:24 -05:00
Justin Ethier
9d0130bd25 Remove unnecessary check 2015-12-18 23:07:15 -05:00
Justin Ethier
4e9bd1ea02 Added GC thread state, and notes 2015-12-18 23:49:32 -05:00
Justin Ethier
f3fac78e35 Added notes 2015-12-17 23:00:38 -05:00
Justin Ethier
a539027b0f Added thread primitives 2015-12-17 23:50:11 -05:00
Justin Ethier
7d57cec8a6 Pass Cyc_end_thread primitive 2015-12-17 23:24:23 -05:00
Justin Ethier
62e4e5afe9 Added thread primitives 2015-12-17 23:19:41 -05:00
Justin Ethier
e57688a774 Added thread start/end functions to runtime 2015-12-17 22:45:45 -05:00
Justin Ethier
43d29e3a4c Added Cyc_setup_thread stub 2015-12-16 23:03:27 -05:00
Justin Ethier
74b818ec2f Added an 'end thread' stub 2015-12-14 21:58:41 -05:00
Justin Ethier
ff18c50aac Cleanup all thread data members 2015-12-14 21:30:51 -05:00
Justin Ethier
c61fcd69d7 Removing obsolete function 2015-12-14 23:17:14 -05:00
Justin Ethier
ddf54ec5c7 Phasing-out Cyc_st_add2 2015-12-14 23:16:28 -05:00
Justin Ethier
ead5bcb100 Keep track of call history using thread data 2015-12-14 22:55:57 -05:00
Justin Ethier
4b3949ccb4 Speed up call history and remove debug code 2015-12-11 23:09:54 -05:00
Justin Ethier
dcf9396be2 Added a note about global table 2015-12-11 22:36:31 -05:00
Justin Ethier
84d74409cb Use ck hashset to speed up our symbol table 2015-12-11 22:27:21 -05:00
Justin Ethier
33447ebc57 New write barrier implementation 2015-12-07 22:34:29 -05:00
Justin Ethier
c8878e749a WIP - deferred gray 2015-12-08 03:14:00 -05:00
Justin Ethier
2dda21e43a Added TODO 2015-12-07 23:10:42 -05:00
Justin Ethier
fa26b18b01 Fixed compile error 2015-12-07 23:04:04 -05:00
Justin Ethier
3adf4d8d32 Refactoring 2015-12-07 22:54:47 -05:00
Justin Ethier
c75c86f028 WIP - "grayed" flag to indicate grayed stack object 2015-12-06 22:56:19 -05:00
Justin Ethier
3d0d966e6d Changed GC cooperation
Mark all objects moved to the heap, instead of just the typical roots.
2015-12-05 22:44:06 -05:00
Justin Ethier
22275832b5 Redirect GC to stderr 2015-12-03 23:20:16 -05:00
Justin Ethier
f6e14ef3a8 Added debugging 2015-12-01 22:34:39 -05:00
Justin Ethier
524e922ee0 Added temporary SIGINT 2015-11-30 22:22:13 -05:00
Justin Ethier
8452c35fae Use #if instead of #ifdef 2015-11-30 21:41:48 -05:00
Justin Ethier
52f0868d24 Selectively compile debug traces 2015-11-30 21:40:16 -05:00
Justin Ethier
7276eea773 Added debugging 2015-11-30 23:00:30 -05:00
Justin Ethier
b5849e10ed Added debug traces 2015-11-26 22:45:22 -05:00
Justin Ethier
ff1fc10a90 Added debug statements 2015-11-25 23:46:50 -05:00
Justin Ethier
2215807a7c WIP, need to get sweep (trace?) working 2015-11-19 21:18:52 -05:00
Justin Ethier
ec6140b3a4 Ensure stack objects are properly marked 2015-11-20 02:50:46 -05:00
Justin Ethier
8bf20a05b5 Copy objects into heap while we have the heap lock
Attempting to prevent issues with unitialized memory. Unfortunately this is not the primary cause of the errors.
2015-11-19 23:00:53 -05:00
Justin Ethier
fc29269a26 Debugging 2015-11-19 02:51:22 -05:00
Justin Ethier
ee8aec5887 Added stack scanning to write barrier. Does not seem to help, though 2015-11-18 22:44:02 -05:00
Justin Ethier
e4c4148a74 Attemping to add write barrier for set operations 2015-11-17 23:03:11 -05:00
Justin Ethier
b609e1556f WIP 2015-11-17 23:29:57 -05:00