Commit graph

1212 commits

Author SHA1 Message Date
Justin Ethier
71af17d7e7 Use atomic operations from libck 2015-12-29 22:05:07 -05:00
Justin Ethier
fa72a604fb Test 2015-12-29 04:51:20 +00:00
Justin Ethier
ccc7c2dcd3 Added notes on ARM support 2015-12-29 04:49:58 +00:00
Justin Ethier
a15f7057b9 Added notes 2015-12-27 23:21:28 -05:00
Justin Ethier
eaa0481f40 Added Cyc-minor-gc 2015-12-27 23:16:58 -05:00
Justin Ethier
3f0306c404 Handle import-sets that contain numbers 2015-12-27 22:41:52 -05:00
Justin Ethier
e8186fb6fe Added function to normalize import set lists 2015-12-27 22:04:51 -05:00
Justin Ethier
11b479f379 Use new import. But there is another number/symbol issue 2015-12-26 23:55:16 -05:00
Justin Ethier
151a09386e Added import base 2015-12-26 23:49:41 -05:00
Justin Ethier
167d26adbb Handle lib names with numbers in them 2015-12-26 23:48:45 -05:00
Justin Ethier
40ba493ac3 Integrating with new module 2015-12-26 23:37:28 -05:00
Justin Ethier
7db26c7d8c Relocated threading functions 2015-12-26 23:26:07 -05:00
Justin Ethier
deae1693d5 Updated header comments 2015-12-23 23:02:38 -05:00
Justin Ethier
e24da010bd Added notes 2015-12-23 22:35:03 -05:00
Justin Ethier
eaac66ab37 WIP 2015-12-23 22:09:10 -05:00
Justin Ethier
e7e8cbd744 Prevent being overwritten by test.scm compilation 2015-12-24 02:21:48 -05:00
Justin Ethier
680149a066 Suppress unneeded write 2015-12-24 02:21:16 -05:00
Justin Ethier
1f21b4688a WIP 2015-12-24 02:20:18 -05:00
Justin Ethier
6ae7a88e53 Bugfix 2015-12-24 01:56:00 -05:00
Justin Ethier
43ff5c5454 Re-enable cooperation code 2015-12-24 01:32:40 -05:00
Justin Ethier
b31c6181c8 Set main thread runnable 2015-12-24 01:32:29 -05:00
Justin Ethier
2e9c5addd5 WIP 2015-12-24 00:50:37 -05:00
Justin Ethier
c09dc43dde First crack at gc_mutator_thread_runnable 2015-12-23 22:34:11 -05:00
Justin Ethier
cc36d6459d Added collector_cooperated flag 2015-12-22 22:49:55 -05:00
Justin Ethier
6a2ed8ff23 Updated header file 2015-12-22 22:41:25 -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
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