diff options
-rw-r--r-- | mu.arc | 8 | ||||
-rw-r--r-- | mu.arc.t | 14 |
2 files changed, 14 insertions, 8 deletions
diff --git a/mu.arc b/mu.arc index f482bbcd..e100d089 100644 --- a/mu.arc +++ b/mu.arc @@ -205,14 +205,6 @@ ;; managing concurrent routines -; todo: test that restarting a routine works -; when it died -; when it timed out -; when it completed -; test that run checks status of sleep -; run multiple routines in tandem -; drop helper bit in component under test -- comment - (on-init ;? (prn "-- resetting memory allocation") (= Memory-allocated-until 1000)) diff --git a/mu.arc.t b/mu.arc.t index 801609b2..a617ec3a 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -2558,6 +2558,12 @@ (when (~empty completed-routines*) (prn "F - scheduler ignores sleeping but ready threads when detecting deadlock")) +; Helper routines are just to sidestep the deadlock test; they stop running +; when there's no non-helper routines left to run. +; +; Be careful not to overuse them. In particular, the component under test +; should never run in a helper routine; that'll make interrupting and +; restarting it very brittle. (reset) (new-trace "scheduler-helper") (= traces* (queue)) @@ -2960,6 +2966,14 @@ )) ;? (quit) +; todo: Haven't yet written several tests +; that restarting a routine works +; when it died +; when it timed out +; when it completed +; running multiple routines in tandem +; first example using these features: read-move-incomplete in chessboard-cursor.arc.t + ; The scheduler needs to keep track of the call stack for each routine. ; Eventually we'll want to save this information in mu's address space itself, ; along with the types array, the magic buffers for args and oargs, and so on. |