equal
deleted
inserted
replaced
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 |