Ao criarmos uma nova coroutine, essa fica em estado suspenso até que requisitemos sua
execução com o comando resume. Ao término da execução não podemos invocar o resume.
Sintaxe
coroutine.resume(co,[,va1])
Onde
co: coroutine que desejamos executar
val: argumentos da corotina. Opcional
Retorno
Se a execução ocorrer sem erros, retorna true e um valor de retorno da coroutine se declarado.
Se a execução ocorrer com erros, retorna false e uma mensagem de erro.
Exemplo 2
local function funcao()
print("hello world")
end
local corotina = coroutine.create(funcao)
status, valor = coroutine.resume(corotina)
print(status,valor)
corotina = nil
Saída
hello world
true nil
Exemplo 3
local function funcao()
print("hello world")
end
local corotina = coroutine.create(funcao)
local status, valor = coroutine.resume(corotina)
print(status,valor)
status, valor = coroutine.resume(corotina) --corotina "morta"
print(status,valor)
corotina = nil
Saída
hello world
true nil
false cannot resume dead coroutine