]> git.lizzy.rs Git - lua_async.git/blob - immediates.lua
6e0637283b6149927024a92587381f51b8b7b76c
[lua_async.git] / immediates.lua
1 lua_async.immediates = {
2         pool = {},
3         last_id = 0,
4 }
5
6 function setImmediate(callback, ...)
7         local id = lua_async.immediates.last_id + 1
8         lua_async.immediates.last_id = id
9         lua_async.immediates.pool[id] = {
10                 callback = callback,
11                 args = {...},
12         }
13         return id
14 end
15
16 function clearImmediate(id)
17         lua_async.immediates.pool[id] = nil
18 end
19
20 function lua_async.immediates.step(dtime)
21         for id, immediate in pairs(lua_async.immediates.pool) do
22                 immediate.callback(unpack(immediate.args))
23                 clearImmediate(id)
24         end
25 end
26