呼び出し、その返り値に対し反復処理をすることでコルーチンの実行を制御できます。属性に返り値を持たせます。コルーチンが例外を送出した場合は、イテレータにより伝搬されます。例外を外に送出すべきではありません。ジェネレータと違って、コルーチンは反復処理を直接はサポートしていません。coroutine.send(value)¶コルーチンの実行を開始したり再開したりします。返されたイテレータを進めるのと同等です。メソッドに処理を委任します。返り値に対して反復処理を行ったときと同じです。traceback]])¶コルーチンで指定された例外を送出します。メソッドがある場合に処理を委任します。ない場合には、中断した地点から例外が送出されます。返り値に対して反復処理を行ったときと同じです。例外がコルーチンの中で捕捉されなかった場合、呼び出し元へ伝搬されます。coroutine.close()¶コルーチンが自分自身の後片付けをし終了します。メソッドがあれば、まずはそれに処理を委任します。送出され、ただちにコルーチンが自分自身の後片付けを行います。最後に、実行が開始されていなかった場合でも、コルーチンに実行が完了した印を付けます。コルーチンオブジェクトが破棄されるときには、上記の手順を経て自動的に閉じられます。メソッドからは非同期のコードが呼べます。オブジェクトを返さなくてはなりません。返さなければなりません。エラーを送出すべきです。非同期イテレータオブジェクトを返さなければなりません。