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 {