aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2018-04-29 21:43:39 +0100
committerMatthew Wild <mwild1@gmail.com>2018-04-29 21:43:39 +0100
commit9f9b1f9fda0bcd74248b5b98a2e965f120bd7026 (patch)
treeed7e870075dc2c987086a45e00f72df64a65a558
parent265e698cd07f7ee508a741200870a3e79d47b2e7 (diff)
downloadprosody-9f9b1f9fda0bcd74248b5b98a2e965f120bd7026.tar.gz
prosody-9f9b1f9fda0bcd74248b5b98a2e965f120bd7026.zip
util.timer: Ensure we don't try to schedule negative timeouts (which rightly upset libevent). Fixes #1135
-rw-r--r--util/timer.lua3
1 files changed, 2 insertions, 1 deletions
diff --git a/util/timer.lua b/util/timer.lua
index 70678ab2..424d44fa 100644
--- a/util/timer.lua
+++ b/util/timer.lua
@@ -15,6 +15,7 @@ local type = type;
local debug_traceback = debug.traceback;
local tostring = tostring;
local xpcall = xpcall;
+local math_max = math.max;
local _ENV = nil;
-- luacheck: std none
@@ -87,7 +88,7 @@ local function stop(id)
next_time = peek;
_server_timer:close();
if next_time ~= nil then
- _server_timer = _add_task(next_time - get_time(), _on_timer);
+ _server_timer = _add_task(math_max(next_time - get_time(), 0), _on_timer);
end
end
return result, item, result_sync;