mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-24 20:45:06 +02:00
WIP
This commit is contained in:
parent
6b96c00b57
commit
b5704446e6
2 changed files with 10 additions and 6 deletions
12
gc-notes.txt
12
gc-notes.txt
|
@ -6,18 +6,18 @@ Phase 5 (gc-dev5) - Require pthreads library, stand cyclone back up using new GC
|
||||||
Phase 6 (gc-dev6) - Multiple mutators (application threads)
|
Phase 6 (gc-dev6) - Multiple mutators (application threads)
|
||||||
Phase 7 (TBD) - Sharing of variables between threads (ideally without limitation, but that might not be realistic)
|
Phase 7 (TBD) - Sharing of variables between threads (ideally without limitation, but that might not be realistic)
|
||||||
|
|
||||||
TODO:
|
Mutex TODO:
|
||||||
- create a branch and try to use CK atomics. - seems done, just keep an eye on this
|
|
||||||
|
|
||||||
- multiple mutators, and threading functions/types. probably want this on a new branch, when ready
|
|
||||||
part of this is implementing the beginnings of srfi-18, to create multiple threads, sync them, etc
|
|
||||||
next steps:
|
|
||||||
- add mutex type, and associated functions from SRFI-18
|
- add mutex type, and associated functions from SRFI-18
|
||||||
when allocating a mutex, probably should do it on thread since by definition these are
|
when allocating a mutex, probably should do it on thread since by definition these are
|
||||||
shared among multiple threads
|
shared among multiple threads
|
||||||
- may be able to free mutex using mutex_destroy from within gc_sweep.
|
- may be able to free mutex using mutex_destroy from within gc_sweep.
|
||||||
unfortunately it requires type checking each object before free, which is not ideal
|
unfortunately it requires type checking each object before free, which is not ideal
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
- multiple mutators, and threading functions/types. probably want this on a new branch, when ready
|
||||||
|
part of this is implementing the beginnings of srfi-18, to create multiple threads, sync them, etc
|
||||||
|
next steps:
|
||||||
|
|
||||||
- start making core stuff thread safe. for example, test.scm sometimes
|
- start making core stuff thread safe. for example, test.scm sometimes
|
||||||
crashes, I think printing out result from (read)
|
crashes, I think printing out result from (read)
|
||||||
- assume I/O and eval both have threading issues
|
- assume I/O and eval both have threading issues
|
||||||
|
|
4
test.scm
4
test.scm
|
@ -11,6 +11,10 @@
|
||||||
; (foo))
|
; (foo))
|
||||||
;)
|
;)
|
||||||
|
|
||||||
|
(define tmp2 (make-mutex))
|
||||||
|
(mutex-lock! tmp2)
|
||||||
|
(mutex-unlock! tmp2)
|
||||||
|
|
||||||
;; A program to prove if cooperation is working, or if it
|
;; A program to prove if cooperation is working, or if it
|
||||||
;; is blocked by another thread. The (read) causes the main
|
;; is blocked by another thread. The (read) causes the main
|
||||||
;; thread to block. The collector should be notified prior
|
;; thread to block. The collector should be notified prior
|
||||||
|
|
Loading…
Add table
Reference in a new issue