Software /
code /
prosody
Diff
plugins/mod_admin_shell.lua @ 10988:9dcbbb1d12c3
mod_admin_shell: Handle server_epoll using monotonic time internally
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 30 Jun 2020 02:31:57 +0200 |
parent | 10986:d585deb8c882 |
child | 11041:d00bfa75999d |
line wrap: on
line diff
--- a/plugins/mod_admin_shell.lua Tue Jun 30 02:31:29 2020 +0200 +++ b/plugins/mod_admin_shell.lua Tue Jun 30 02:31:57 2020 +0200 @@ -1267,11 +1267,18 @@ local print = self.session.print; local add_task = require"util.timer".add_task; local h, params = add_task.h, add_task.params; + local function normalize_time(t) + return t; + end + local function format_time(t) + return os.date("%F %T", math.floor(normalize_time(t))); + end if h then print("-- util.timer"); elseif server.timer then print("-- net.server.timer"); h = server.timer.add_task.timers; + normalize_time = server.timer.to_absolute_time or normalize_time; end if h then for i, id in ipairs(h.ids) do @@ -1286,7 +1293,7 @@ elseif params[id] then cb = params[id].callback or cb; end - print(os.date("%F %T", math.floor(t)), cb); + print(format_time(t), cb); end end if server.event_base then @@ -1301,7 +1308,7 @@ if h then local next_time = h:peek(); if next_time then - return true, os.date("Next event at %F %T (in %%.6fs)", math.floor(next_time)):format(next_time - time.now()); + return true, ("Next event at %s (in %.6fs)"):format(format_time(next_time), normalize_time(next_time) - time.now()); end end return true;