Difference between revisions of "Coroutine.yield"
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
+ | <languages /> | ||
'''<translate>Available since</translate>:''' Gideros 2011.6<br/> | '''<translate>Available since</translate>:''' Gideros 2011.6<br/> | ||
'''<translate>Class</translate>:''' [[Special:MyLanguage/coroutine|coroutine]]<br/> | '''<translate>Class</translate>:''' [[Special:MyLanguage/coroutine|coroutine]]<br/> |
Revision as of 09:59, 3 September 2018
Available since: Gideros 2011.6
Class: coroutine
Description
In order for multiple coroutines to share execution they must stop executing (after performing a sensible amount of processing) and pass control to another thread. This act of submission is called yielding. Coroutines explicitly call a Lua function coroutine.yield(), which is similar to using return in functions. What differentiates yielding from function returns is that at a later point we can reenter the thread and carry on where we left off. When you exit a function scope using return the scope is destroyed and we cannot reenter it, e.g.,
coroutine.yield(val1,...)
Parameters
val1: (any) value to return from coroutine.resume call optional
...: (multiple) other optional values that will be returned from coroutine.resume call optional