coroutine.yield
Lua function

coroutine.yield

Summary

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.


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




See Also ...

Topics

DOC_lua_base Lua base functions
DOC_lua_bc Lua bc (big number) functions
DOC_lua_bit Lua bit manipulation functions
DOC_lua_coroutines Lua coroutine functions
DOC_lua_debug Lua debug functions
DOC_lua_io Lua io functions
DOC_lua_math Lua math functions
DOC_lua_os Lua os functions
DOC_lua_package Lua package functions
DOC_lua_rex Lua PCRE regular expression functions
DOC_lua Lua script extensions
DOC_lua_string Lua string functions
DOC_lua_tables Lua table functions
DOC_lua_utils Lua utilities
DOC_scripting Scripting

Lua functions

LUA_coroutine.create coroutine.create (Creates a new coroutine thread)
LUA_coroutine.resume coroutine.resume (Start or resume a thread)
LUA_coroutine.running coroutine.running (Returns the running coroutine)
LUA_coroutine.status coroutine.status (Returns the status of a thread)
LUA_coroutine.wrap coroutine.wrap (Creates a thread and returns a function to resume it)

(Help topic: lua=coroutine.yield)

DOC_contents Documentation contents page