Mercurial > prosody-hg
comparison net/server_epoll.lua @ 13441:6d96b6eeee5a
util.signal: Wrap signalfd in an userdatum for gc handling etc
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 24 Feb 2024 01:00:44 +0100 |
| parents | b27de3d2bad6 |
| children | 5c9df28a57bb |
comparison
equal
deleted
inserted
replaced
| 13440:b27de3d2bad6 | 13441:6d96b6eeee5a |
|---|---|
| 1145 end | 1145 end |
| 1146 | 1146 |
| 1147 local hook_signal; | 1147 local hook_signal; |
| 1148 if have_signal and signal.signalfd then | 1148 if have_signal and signal.signalfd then |
| 1149 local function dispatch(self) | 1149 local function dispatch(self) |
| 1150 return self:on("signal", signal.signalfd_read(self:getfd())); | 1150 return self:on("signal", self.conn:read()); |
| 1151 end | 1151 end |
| 1152 | 1152 |
| 1153 function hook_signal(signum, cb) | 1153 function hook_signal(signum, cb) |
| 1154 local watch = watchfd(signal.signalfd(signum), dispatch); | 1154 local watch = watchfd(signal.signalfd(signum), dispatch); |
| 1155 watch.listeners = { onsignal = cb }; | 1155 watch.listeners = { onsignal = cb }; |
| 1156 watch.close = nil; -- revert to default | |
| 1156 return watch; | 1157 return watch; |
| 1157 end | 1158 end |
| 1158 end | 1159 end |
| 1159 | 1160 |
| 1160 return { | 1161 return { |
