Difference between revisions of "Coroutine.yield"
From GiderosMobile
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | + | '''Available since:''' Gideros 2011.6<br/> | |
− | ''' | + | '''Class:''' [[coroutine]]<br/> |
− | ''' | + | |
− | === | + | === Description === |
− | + | Suspends execution of the coroutine. | |
<source lang="lua"> | <source lang="lua"> | ||
− | + | coroutine.yield(...) | |
</source> | </source> | ||
− | + | ||
− | ''' | + | '''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''' |
− | '''...''': ( | + | |
+ | '''Any arguments to yield are passed as extra results to resume. Yielding a coroutine inside metamethods or C functions is prohibited, with the exception of pcall and xpcall''' | ||
+ | |||
+ | === Parameters === | ||
+ | '''...''': (any) values to return from coroutine.resume call '''optional'''<br/> | ||
{{Coroutine}} | {{Coroutine}} |
Revision as of 23:08, 22 January 2023
Available since: Gideros 2011.6
Class: coroutine
Description
Suspends execution of the coroutine.
coroutine.yield(...)
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
Any arguments to yield are passed as extra results to resume. Yielding a coroutine inside metamethods or C functions is prohibited, with the exception of pcall and xpcall
Parameters
...: (any) values to return from coroutine.resume call optional