| NAME |
| await |
| |
| SYNTAX |
| await(<coroutine>) |
| await(<coroutine>, <value>) |
| |
| DESCRIPTION |
| The instruction is only allowed in a coroutine and suspends its |
| execution. |
| |
| The target coroutine must also be in a suspended state. Its |
| execution will then continue. |
| |
| The current coroutine will wait for the execution of the target |
| coroutine to finish with a return statement or end of statement |
| block. It cannot continue its execution until then. Only one |
| coroutine may wait for another. If there is already a coroutine |
| waiting for the target coroutine the instruction will fail. |
| |
| Any calls during the waiting period to continue the current |
| coroutine will result in execution of the target coroutine. |
| So the await() call can be seen as a sub-coroutine call. |
| |
| The value will be passed into the target coroutine as the result |
| of its yield() instruction that suspended its execution before. |
| If the coroutine had just started, the value will be discarded. |
| If no value was given, 0 will be passed instead. |
| |
| HISTORY |
| Coroutines were introduced in LDMud 3.6.5. |
| |
| SEE ALSO |
| coroutines(LPC), async(LPC), yield(LPC), foreach(LPC), |
| call_coroutine(E), this_coroutine(E) |