|parrotcode: Lua Coroutine Library|
|Contents | Language Implementations | Lua|
lib/luacoroutine.pir - Lua Coroutine Library
The operations related to coroutines comprise a sub-library of the basic library and come inside the table
See "Lua 5.1 Reference Manual", section 5.2 "Coroutine Manipulation".
fmust be a Lua function. Returns this new coroutine, an object with type
coroutine.resume (co [, val1, ..., valn])
co. The first time you resume a coroutine, it starts running its body. The values
val1, ..., valnare passed as the arguments to the body function. If the coroutine has yielded,
resumerestarts it; the values
val1, ..., valnare passed as the results from the yield.
resumereturns true plus any values passed to yield (if the coroutine yields) or any values returned by the body function (if the coroutine terminates). If there is any error,
resumereturns false plus the error message.
co, as a string:
"running", if the coroutine is running (that is, it called
"suspended", if the coroutine is suspended in a call to yield, or if it has not started running yet;
"normal"if the coroutine is active but not running (that is, it has resumed another coroutine); and
"dead"if the coroutine has finished its body function, or if it has stopped with an error.
fmust be a Lua function. Returns a function that resumes the coroutine each time it is called. Any arguments passed to the function behave as the extra arguments to
resume. Returns the same values returned by
resume, except the first boolean. In case of error, propagates the error.
coroutine.yield ([val1, ..., valn])
yieldare passed as extra results to