Software /
code /
prosody
Diff
net/server.lua @ 2435:1ab73691b58e
net.server: When libevent backend is in use, override signal.signal to use server.hook_signal
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sun, 10 Jan 2010 15:26:36 +0000 |
parent | 2281:27441b099984 |
child | 2645:625d02b2a1a0 |
line wrap: on
line diff
--- a/net/server.lua Sun Jan 10 15:25:19 2010 +0000 +++ b/net/server.lua Sun Jan 10 15:26:36 2010 +0000 @@ -23,6 +23,23 @@ function server.addtimer(f) return add_task(1, function (...) f(...); return 1; end); end + + -- Overwrite signal.signal() because we need to ask libevent to + -- handle them instead + local ok, signal = pcall(require, "util.signal"); + if ok and signal then + local _signal_signal = signal.signal; + function signal.signal(signal_id, handler) + if type(signal_id) == "string" then + signal_id = signal[signal_id:upper()]; + end + if type(signal_id) ~= "number" then + return false, "invalid-signal"; + end + --_signal_signal(signal_id, handler); + return server.hook_signal(signal_id, handler); + end + end else server = require "net.server_select"; package.loaded["net.server"] = server;