coroutine.create (function) devuelve una coroutine (type (coroutine) == 'thread') que contiene la función.
coroutine.resume (co, ...) reanudar, o iniciar la coroutine. Cualquier argumento adicional dado para reanudar se devuelve desde coroutine.yield () que previamente pausó la coroutine. Si no se ha iniciado la rutina, los argumentos adicionales se convierten en los argumentos de la función.
coroutine.yield (...) produce la coroutine actualmente en ejecución. La ejecución se recupera después de la llamada a coroutine.resume () que inició esa coroutine. Cualquier argumento dado para ceder se devuelve del coroutine.resume () correspondiente que inició la coroutine.
coroutine.status (co) devuelve el estado de la coroutine, que puede ser:
coroutine.wrap (función) devuelve una función que, cuando se le llama, reanuda la coroutina que habría sido creada por coroutine.create (función).
El sistema coroutine ha sido implementado en lua para emular multiproceso existente en otros idiomas. Funciona cambiando a una velocidad extremadamente alta entre diferentes funciones para que el usuario humano piense que se ejecutan al mismo tiempo.