diff options
author | Kim Alvefur <zash@zash.se> | 2015-11-25 15:34:54 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2015-11-25 15:34:54 +0100 |
commit | c829b49476995a24a512c6aa1d7626df5acfc9d3 (patch) | |
tree | 095ca32040d08241b94779133b3afbc106e3a5af /plugins | |
parent | a4f1ede8dc96076216f93c7e838019682669cce7 (diff) | |
download | prosody-c829b49476995a24a512c6aa1d7626df5acfc9d3.tar.gz prosody-c829b49476995a24a512c6aa1d7626df5acfc9d3.zip |
mod_admin_telnet: Add timer:info() which shows some basic info about util.timer
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mod_admin_telnet.lua | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/plugins/mod_admin_telnet.lua b/plugins/mod_admin_telnet.lua index e2aaa7bc..7aea28ba 100644 --- a/plugins/mod_admin_telnet.lua +++ b/plugins/mod_admin_telnet.lua @@ -334,6 +334,38 @@ function def_env.server:memory() return true, "OK"; end +def_env.timer = {}; + +function def_env.timer:info() + local print = self.session.print; + local add_task = require"util.timer".add_task; + local h, params = add_task.h, add_task.params; + print("-- util.timer"); + for i, id in ipairs(h.ids) do + if not params[id] then + print(os.date("%F %T", h.priorities[i]), h.items[id]); + elseif not params[id].callback then + print(os.date("%F %T", h.priorities[i]), h.items[id], unpack(params[id])); + else + print(os.date("%F %T", h.priorities[i]), params[id].callback, unpack(params[id])); + end + end + if server.event_base then + local count = 0; + for k, v in pairs(debug.getregistry()) do + if type(v) == "function" and v.callback == add_task._on_timer then + count = count + 1; + end + end + print(count .. " libevent callbacks"); + end + local next_time = h:peek(); + if next_time then + return true, os.date("Next event at %F %T", next_time); + end + return true; +end + def_env.module = {}; local function get_hosts_set(hosts, module) |