coroutine.yield
Yields execution of thread back to the caller
Prototype
args = coroutine.yield (v1, v2, ...)
Description
Yields execution back to the caller, effectively creating co-operative multi-tasking. Values supplied to yield are returned to coroutine.resume.
The coroutine cannot be running a C function, a metamethod, or an iterator.
Returns any arguments passed to the thread from coroutine.resume.
The coroutine cannot be running a C function, a metamethod, or an iterator.
Returns any arguments passed to the thread from coroutine.resume.
function f (s)
print ("Entering f with value", s)
v = coroutine.yield ("goat")
print ("After yield, v is", v)
return 22
end -- f
thread = coroutine.create (f)
ok, result = coroutine.resume (thread, 42) -- start it up
assert (ok, result) -- check ok
print (result) -- see what the yield returned
ok, result = coroutine.resume (thread, 55) -- resume it
assert (ok, result) -- check ok
print (result) -- see what the function returned
-->
Entering f with value 42
goat
After yield, v is 55
22
Lua functions
- coroutine.create - Creates a new coroutine thread
- coroutine.resume - Start or resume a thread
- coroutine.running - Returns the running coroutine
- coroutine.status - Returns the status of a thread
- coroutine.wrap - Creates a thread and returns a function to resume it
Topics
- Lua PCRE regular expression functions
- Lua base functions
- Lua bc (big number) functions
- Lua bit manipulation functions
- Lua coroutine functions
- Lua debug functions
- Lua io functions
- Lua math functions
- Lua os functions
- Lua package functions
- Lua script extensions
- Lua string functions
- Lua syntax
- Lua table functions
- Lua utilities
- Scripting callbacks - plugins
- Scripting