Justin Ethier
8aefcbfd13
New mutator signatures
2015-12-22 22:39:51 -05:00
Justin Ethier
247b09fc88
Store cont before mutator is blocked
2015-12-22 22:19:04 -05:00
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