Difference between revisions of "Coroutine.yield"
From GiderosMobile
m (Text replacement - "</source>" to "</syntaxhighlight>") |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
=== Description === | === Description === | ||
Suspends execution of the coroutine. | Suspends execution of the coroutine. | ||
− | < | + | <syntaxhighlight lang="lua"> |
− | coroutine.yield(...) | + | (any) = coroutine.yield(...) |
− | </ | + | </syntaxhighlight> |
'''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''' | '''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''' | ||
Line 15: | Line 15: | ||
=== Parameters === | === Parameters === | ||
'''...''': (any) values to return from coroutine.resume call '''optional'''<br/> | '''...''': (any) values to return from coroutine.resume call '''optional'''<br/> | ||
+ | |||
+ | === Return values === | ||
+ | '''Returns''' (any) values to return if any<br/> | ||
{{Coroutine}} | {{Coroutine}} |
Latest revision as of 14:27, 13 July 2023
Available since: Gideros 2011.6
Class: coroutine
Description
Suspends execution of the coroutine.
(any) = 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
Return values
Returns (any) values to return if any