aboutsummaryrefslogtreecommitdiff
path: root/immediates.lua
diff options
context:
space:
mode:
Diffstat (limited to 'immediates.lua')
-rw-r--r--immediates.lua8
1 files changed, 6 insertions, 2 deletions
diff --git a/immediates.lua b/immediates.lua
index 6e06372..8913ddc 100644
--- a/immediates.lua
+++ b/immediates.lua
@@ -1,5 +1,6 @@
lua_async.immediates = {
pool = {},
+ executing = {},
last_id = 0,
}
@@ -15,12 +16,15 @@ end
function clearImmediate(id)
lua_async.immediates.pool[id] = nil
+ lua_async.immediates.executing[id] = nil
end
function lua_async.immediates.step(dtime)
- for id, immediate in pairs(lua_async.immediates.pool) do
+ lua_async.immediates.executing = lua_async.immediates.pool
+ lua_async.immediates.pool = {}
+
+ for id, immediate in pairs(lua_async.immediates.executing) do
immediate.callback(unpack(immediate.args))
- clearImmediate(id)
end
end