Mercurial > prosody-hg
comparison 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 |
| parents | 27441b099984 |
| children | 625d02b2a1a0 |
comparison
equal
deleted
inserted
replaced
| 2434:4403d4473783 | 2435:1ab73691b58e |
|---|---|
| 21 -- called a function roughly every second | 21 -- called a function roughly every second |
| 22 local add_task = require "util.timer".add_task; | 22 local add_task = require "util.timer".add_task; |
| 23 function server.addtimer(f) | 23 function server.addtimer(f) |
| 24 return add_task(1, function (...) f(...); return 1; end); | 24 return add_task(1, function (...) f(...); return 1; end); |
| 25 end | 25 end |
| 26 | |
| 27 -- Overwrite signal.signal() because we need to ask libevent to | |
| 28 -- handle them instead | |
| 29 local ok, signal = pcall(require, "util.signal"); | |
| 30 if ok and signal then | |
| 31 local _signal_signal = signal.signal; | |
| 32 function signal.signal(signal_id, handler) | |
| 33 if type(signal_id) == "string" then | |
| 34 signal_id = signal[signal_id:upper()]; | |
| 35 end | |
| 36 if type(signal_id) ~= "number" then | |
| 37 return false, "invalid-signal"; | |
| 38 end | |
| 39 --_signal_signal(signal_id, handler); | |
| 40 return server.hook_signal(signal_id, handler); | |
| 41 end | |
| 42 end | |
| 26 else | 43 else |
| 27 server = require "net.server_select"; | 44 server = require "net.server_select"; |
| 28 package.loaded["net.server"] = server; | 45 package.loaded["net.server"] = server; |
| 29 end | 46 end |
| 30 | 47 |
