mirror of
https://github.com/lune-org/lune.git
synced 2024-12-12 13:00:37 +00:00
35 lines
647 B
Text
35 lines
647 B
Text
|
--!nocheck
|
||
|
--!nolint UnknownGlobal
|
||
|
|
||
|
local nums = {}
|
||
|
local function insert(n: number)
|
||
|
table.insert(nums, n)
|
||
|
print(n)
|
||
|
end
|
||
|
|
||
|
insert(1)
|
||
|
|
||
|
-- Defer will run at the end of the resumption cycle, but without yielding
|
||
|
defer(function()
|
||
|
insert(5)
|
||
|
end)
|
||
|
|
||
|
-- Spawn will instantly run up until the first yield, and must then be resumed manually ...
|
||
|
spawn(function()
|
||
|
insert(2)
|
||
|
coroutine.yield()
|
||
|
error("unreachable code")
|
||
|
end)
|
||
|
|
||
|
-- ... unless calling functions created using `lua.create_async_function(...)`,
|
||
|
-- which will resume their calling thread with their result automatically
|
||
|
spawn(function()
|
||
|
insert(3)
|
||
|
sleep(1)
|
||
|
insert(6)
|
||
|
end)
|
||
|
|
||
|
insert(4)
|
||
|
|
||
|
return nums
|