diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2014-11-21 18:31:48 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2014-11-21 18:45:46 -0800 |
commit | 58ad6023b52f2c37feb1e20a4d3263216d5ae597 (patch) | |
tree | d9e407d73da124c261e91efc2dd4614b99e90ca0 /mu.arc.t | |
parent | 95b57986d06935cd9a865357891e26fc46674889 (diff) | |
download | mu-58ad6023b52f2c37feb1e20a4d3263216d5ae597.tar.gz |
282 - scheduler skips ahead when all routines are asleep
Diffstat (limited to 'mu.arc.t')
-rw-r--r-- | mu.arc.t | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/mu.arc.t b/mu.arc.t index 58ac2d3a..74ecd224 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -1737,8 +1737,6 @@ (set sleeping-routines*.routine)) ; not yet time for it to wake up (= curr-cycle* 23) -; pretend we just finished a routine -(= routine* (annotate 'routine (table))) ;? (set dump-trace*) ;? (= dump-trace* (obj whitelist '("run" "schedule"))) (update-scheduler-state) @@ -1761,13 +1759,29 @@ (set sleeping-routines*.routine)) ; time for it to wake up (= curr-cycle* 24) -; pretend we just finished a routine -(= routine* (annotate 'routine (table))) (update-scheduler-state) (if (~is 2 len.running-routines*) (prn "F - scheduler wakes up sleeping routines at the right time")) (reset) +(new-trace "scheduler-skip") +(add-fns + '((f1 + ((1 integer) <- copy (3 literal))))) +; running-routines* is empty +(assert (empty running-routines*)) +; sleeping routine +(let routine make-routine!f1 + (= rep.routine!sleep '(23 literal)) + (set sleeping-routines*.routine)) +; long time left for it to wake up +(= curr-cycle* 0) +(update-scheduler-state) +(assert (is curr-cycle* 24)) +(if (~is 1 len.running-routines*) + (prn "F - scheduler skips ahead to earliest sleeping routines when nothing to run")) + +(reset) (new-trace "sleep") (add-fns '((f1 |