X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=intervals.lua;h=025454db2a0f6789561cd67d74a534016b4fa5f3;hb=bc2179e07b2abf01491a295ed067af9c41b387af;hp=72a0cc74135189e58b42e39551c8a9632ccbfa89;hpb=a2770298f040307f8dd59c7a88d7e40d37faec14;p=lua_async.git 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