tur/scheduler
stdlib/scheduler.tur
defn
scheduler-new
(scheduler-new :ptr<void>)
create a new cooperative fiber scheduler.
Since: Phase T21
defn
scheduler-current
(scheduler-current :ptr<void>)
return the current global scheduler pointer.
Since: Phase T21
defn
scheduler-spawn
(scheduler-spawn [sched :ptr<void> f :ptr<void>] :nil)
add a fiber to the scheduler's ready queue.
Parameters
| sched | scheduler pointer returned by scheduler-new | |
| f | fiber pointer to enqueue |
Since: Phase T21
defn
scheduler-run
(scheduler-run [sched :ptr<void>] :nil)
run the scheduler event loop until the ready queue is empty.
Parameters
| sched | scheduler pointer returned by scheduler-new |
Since: Phase T21
defn
scheduler-run-to-completion
(scheduler-run-to-completion [sched :ptr<void>] :nil)
run the scheduler until all spawned fibers have finished.
Parameters
| sched | scheduler pointer returned by scheduler-new |
Since: Phase T21
defn
scheduler-timeout
(scheduler-timeout [ms :int cb :ptr<void> arg :ptr<void>] :nil)
schedule a callback to be called after a delay in milliseconds.
Parameters
| ms | delay in milliseconds before invoking the callback | |
| cb | function pointer to invoke; receives arg as its sole argument | |
| arg | opaque pointer passed through to the callback |
Since: Phase T21