No matching definitions.

tur/scheduler

stdlib/scheduler.tur

cooperative fiber scheduler managing a fiber run queue.

Since: Phase T21

defn

scheduler-new

(scheduler-new :ptr<void>)

create a new cooperative fiber scheduler.

ptr<void> -- the newly allocated scheduler; panics if one already exists

(scheduler-new)  ; => sched-ptr

Since: Phase T21

defn

scheduler-current

(scheduler-current :ptr<void>)

return the current global scheduler pointer.

ptr<void> -- the active scheduler, or nil if none has been created

(scheduler-current)  ; => sched-ptr

Since: Phase T21

defn

scheduler-spawn

(scheduler-spawn [sched :ptr<void> f :ptr<void>] :nil)

add a fiber to the scheduler's ready queue.

schedscheduler pointer returned by scheduler-new
ffiber pointer to enqueue
(scheduler-spawn sched my-fiber)

Since: Phase T21

defn

scheduler-run

(scheduler-run [sched :ptr<void>] :nil)

run the scheduler event loop until the ready queue is empty.

schedscheduler pointer returned by scheduler-new
(scheduler-run sched)

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.

schedscheduler pointer returned by scheduler-new
(scheduler-run-to-completion sched)

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.

msdelay in milliseconds before invoking the callback
cbfunction pointer to invoke; receives arg as its sole argument
argopaque pointer passed through to the callback
(scheduler-timeout 500 my-cb my-data)

Since: Phase T21