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