参考: Programming in Lua プログラミング言語Lua公式解説書, pp.99-113
function test() for i = 1, 3 do print(i) coroutine.yield() end end co = coroutine.create(test) coroutine.resume(co) -- コルーチンを開始し、"1" をプリントし、コルーチンを中断する。(1) print(coroutine.status(co)) -- 中断したコルーチンの状態は suspended (2) coroutine.resume(co) -- コルーチンを再開し、"2" をプリントし、コルーチンを中断する。(3) print(coroutine.status(co)) -- 中断したコルーチンの状態は suspended (4) coroutine.resume(co) -- コルーチンを再開し、"3" をプリントし、コルーチンを中断する。(5) print(coroutine.status(co)) -- 中断したコルーチンの状態は suspended (6) coroutine.resume(co) -- コルーチンを再開すると、ループから抜け、ループのあとは何もないのでコルーチンからも抜ける。 print(coroutine.status(co)) -- 終了したコルーチンの状態は dead (7) TF, message = coroutine.resume(co) -- dead になったコルーチンを再開しようとすると false とエラーメッセージとが返ってくる。(8) print(TF, message)