Justin Ethier
e28951a8d5
Move the mutation table into thread data.
2016-01-04 22:54:23 -05:00
Justin Ethier
d2cbfaf217
Cleanup TODO
2016-01-03 22:57:13 -05:00
Justin Ethier
a889d6fb6f
Refactoring
...
Renamed cyc_start_thread to cyc_start_trampoline to be more clear about what the function actually does.
2016-01-03 22:56:34 -05:00
Justin Ethier
ef61c578c5
Build-out of mutex lock/unlock
2016-01-03 00:02:19 -05:00
Justin Ethier
9402805af3
Mutex stubs
2016-01-02 22:13:45 -05:00
Justin Ethier
36752be311
Stubs for mutex functions
2016-01-02 21:56:36 -05:00
Justin Ethier
71af17d7e7
Use atomic operations from libck
2015-12-29 22:05:07 -05:00
Justin Ethier
eaa0481f40
Added Cyc-minor-gc
2015-12-27 23:16:58 -05:00
Justin Ethier
deae1693d5
Updated header comments
2015-12-23 23:02:38 -05:00
Justin Ethier
eaac66ab37
WIP
2015-12-23 22:09:10 -05:00
Justin Ethier
c09dc43dde
First crack at gc_mutator_thread_runnable
2015-12-23 22:34:11 -05:00
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