Justin Ethier
f3a78bc15a
Fixed compilation issues with mutex primitives
2016-01-03 20:39:53 -05:00
Justin Ethier
b5704446e6
WIP
2016-01-03 00:11:44 -05:00
Justin Ethier
6b96c00b57
Mutex fixes
2016-01-03 00:09:41 -05:00
Justin Ethier
ef61c578c5
Build-out of mutex lock/unlock
2016-01-03 00:02:19 -05:00
Justin Ethier
de33b567a3
Missed a couple things...
2016-01-02 22:49:57 -05:00
Justin Ethier
309fc3dc13
Added mutex functions
2016-01-02 22:41:50 -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
c0ac60ba87
Beginnings of a mutex type
2015-12-30 21:59:37 -05:00
Justin Ethier
c7dd60bf06
Updated notes
2015-12-29 23:27:09 -05:00
Justin Ethier
727d606928
Bump version number and copyright info
2015-12-29 23:21:59 -05:00
Justin Ethier
8f1ad554d9
Use separate configs for X86 / ARM (pi 2)
2015-12-29 23:14:09 -05:00
Justin Ethier
1aa04f75b6
Added cflags for building on raspberry pi
2015-12-30 03:54:31 +00:00
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