diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2014-11-21 21:35:05 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2014-11-21 21:37:22 -0800 |
commit | 527a0ebef8808487a8d998362d44ad7983beba22 (patch) | |
tree | a6a63a6f7facfa62fe03902725c178afe0b002d3 /mu.arc.t | |
parent | 4a007fd922d2a8dc1d67b1283a41f75e800e1cb4 (diff) | |
download | mu-527a0ebef8808487a8d998362d44ad7983beba22.tar.gz |
290 - how was channel-write-block *ever* working?!
Oh right, because I wasn't using default-scope when checking to wake up.
Diffstat (limited to 'mu.arc.t')
-rw-r--r-- | mu.arc.t | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mu.arc.t b/mu.arc.t index 685e097e..29bfee42 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -2248,9 +2248,12 @@ ; channel has capacity 1, but receives a second write ((1 channel-address deref) <- write (1 channel-address deref) (3 tagged-value-address deref))))) ;? (set dump-trace*) -;? (= dump-trace* (obj whitelist '("run"))) +;? (= dump-trace* (obj whitelist '("run" "schedule" "addr"))) (run 'main) ;? (prn int-canon.memory*) +;? (prn running-routines*) +;? (prn sleeping-routines*) +;? (prn completed-routines*) ; second write should cause the routine to sleep, and ; the sole sleeping routine should trigger the deadlock detector (let routine (car completed-routines*) @@ -2258,6 +2261,7 @@ (no rep.routine!error) (~posmatch "deadlock" rep.routine!error)) (prn "F - 'write' on full channel blocks (puts the routine to sleep until the channel gets data)"))) +;? (quit) ; But how will the sleeping routines wake up? Our scheduler can't watch for ; changes to arbitrary values, just tell us if a specific raw location becomes |