Commit graph

1239 commits

Author SHA1 Message Date
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
9fd4929bb0 Added notes 2015-12-23 02:25:52 -05:00
Justin Ethier
785923f955 Partial GC coop for blocked mutator 2015-12-22 23:07:35 -05:00
Justin Ethier
ec8821b9ef Use atomics to access thd->gc_status 2015-12-22 22:57:28 -05:00
Justin Ethier
9a9b3cc640 Let GC know a thread is (potentially) blocking 2015-12-22 22:24:11 -05:00
Justin Ethier
6693b4533a Fixed bug with previous change
Do not change mutator status prior to checking it
2015-12-22 03:15:45 -05:00
Justin Ethier
66ef2e2646 Added thread state helpers, avoid races during coop 2015-12-22 03:09: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
aad3cebd7a Allow module to compile 2015-12-20 00:31:50 -05:00
Justin Ethier
00210623d7 Added thread-terminate 2015-12-19 23:59:52 -05:00
Justin Ethier
72e3a2e91b Added thread-yield 2015-12-19 23:44:39 -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
8895bee4ed Adding sleep function 2015-12-19 00:08:36 -05:00
Justin Ethier
38c1ca7b31 Added thread_sleep 2015-12-18 23:53:24 -05:00
Justin Ethier
621fd0abd0 Basic thread example with a busy-wait 2015-12-18 23:09:50 -05:00
Justin Ethier
9d0130bd25 Remove unnecessary check 2015-12-18 23:07:15 -05:00
Justin Ethier
e4d21335cf Added thread-start! 2015-12-18 22:37:48 -05:00
Justin Ethier
4110c6a4e1 New container for mutator threads 2015-12-18 22:05:37 -05:00
Justin Ethier
c4e14302c4 Array example 2015-12-19 01:28:38 -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
c773af78fb Revisions 2015-12-18 00:00:13 -05:00
Justin Ethier
f6347de299 Do not constant fold thread functions 2015-12-17 23:56:12 -05:00
Justin Ethier
efd00b712f Updated instructions for adding primitives 2015-12-17 23:56:03 -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
d478132d8a Fixed-up make-thread 2015-12-16 21:59:58 -05:00
Justin Ethier
7c795f1534 Noted TODO 2015-12-16 23:07:14 -05:00
Justin Ethier
0e8129f5e6 Added thread stubs 2015-12-16 22:54:34 -05:00
Justin Ethier
dfed77639a Adding thread application stubs 2015-12-15 22:58:15 -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
a0c6309a3b Added notes 2015-12-14 23:28:36 -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
606591ebe5 Added more notes 2015-12-13 00:19:58 -05:00
Justin Ethier
add7c572c8 Added notes about next phase of development 2015-12-12 23:01:30 -05:00