From 48ab864d43381d677e8de18501022088c571c9a8 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Fri, 6 Aug 2021 20:21:58 +0200 Subject: [PATCH] Safe interval implementation --- intervals.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 -- 2.44.0