Coroutines and Yielding
Coroutines allow Lua to perform cooperative multitasking. They let you pause and resume functions at specific points.
Creating and Using Coroutines:
function step()
for i = 1, 3 do
print("Step " .. i)
coroutine.yield()
end
end
co = coroutine.create(step)
coroutine.resume(co) -- Step 1
coroutine.resume(co) -- Step 2
coroutine.resume(co) -- Step 3
coroutine.yield()
pauses execution, and coroutine.resume()
continues it. Great for async-like flows in games.