Module coro

Search:
Group by:

Procs

proc start(c: proc (); stacksize: int = defaultStackSize) {.
raises: [Exception], tags: []
.}
Adds coroutine to event loop. It does not run immediately.   Source Edit
proc suspend(sleepTime: float = 0) {.
raises: [], tags: [TimeEffect]
.}

Stops coroutine execution and resumes no sooner than after sleeptime seconds. Until then other coroutines are executed.

This is similar to a yield, or a yieldFrom:idx in Python.

  Source Edit
proc run() {.
raises: [Exception], tags: [TimeEffect, RootEffect]
.}
Starts main event loop which exits when all coroutines exit. Calling this proc starts execution of first coroutine.   Source Edit
proc alive(c: proc ()): bool {.
raises: [Exception], tags: [RootEffect]
.}
Returns true if coroutine has not returned, false otherwise.   Source Edit
proc wait(c: proc (); interval = 0.01'f64) {.
raises: [Exception], tags: [RootEffect, TimeEffect]
.}
Returns only after coroutine c has returned. interval is time in seconds how often.   Source Edit