diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-08-06 20:21:58 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-08-06 20:21:58 +0200 |
commit | 48ab864d43381d677e8de18501022088c571c9a8 (patch) | |
tree | fe1d85b2dda65f09d4b36ece3611847d8bd88d1a /intervals.lua | |
parent | 03945d096e8d68ee3e979e1fa6491935d6284a4e (diff) | |
download | lua_async-48ab864d43381d677e8de18501022088c571c9a8.tar.xz |
Safe interval implementation
Diffstat (limited to 'intervals.lua')
-rw-r--r-- | intervals.lua | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/intervals.lua b/intervals.lua index 72a0cc7..025454d 100644 --- a/intervals.lua +++ b/intervals.lua @@ -1,5 +1,6 @@ lua_async.intervals = { pool = {}, + executing = {}, last_id = 0, } @@ -18,10 +19,13 @@ end function clearInterval(id) lua_async.intervals.pool[id] = nil + lua_async.intervals.executing[id] = nil end function lua_async.intervals.step(dtime) - for id, interval in pairs(lua_async.intervals.pool) do + lua_async.intervals.executing = table.copy(lua_async.intervals.pool) + + for id, interval in pairs(lua_async.intervals.executing) do interval.time_left = timeout.time_left - dtime if interval.time_left <= 0 then |