comparison net/server_epoll.lua @ 13447:5c9df28a57bb

net.server_epoll: Log failure to hook signals To make any such failures noticeable
author Kim Alvefur <zash@zash.se>
date Wed, 28 Feb 2024 22:24:09 +0100
parents 6d96b6eeee5a
children f36e1e1b84fe
comparison
equal deleted inserted replaced
13446:dba7073f1452 13447:5c9df28a57bb
1149 local function dispatch(self) 1149 local function dispatch(self)
1150 return self:on("signal", self.conn:read()); 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 sigfd = signal.signalfd(signum);
1155 if not sigfd then
1156 log("error", "Could not hook signal %d", signum);
1157 return nil, "failed";
1158 end
1159 local watch = watchfd(sigfd, dispatch);
1155 watch.listeners = { onsignal = cb }; 1160 watch.listeners = { onsignal = cb };
1156 watch.close = nil; -- revert to default 1161 watch.close = nil; -- revert to default
1157 return watch; 1162 return watch;
1158 end 1163 end
1159 end 1164 end