sigprocmask(SIG_BLOCK, &sset, nullptr);
p.add_fd(sfd.fd, [](int fd) {
struct signalfd_siginfo si;
- while (read(fd, &si, sizeof(si)) == sizeof(si)) {
+ if (read(fd, &si, sizeof(si)) == sizeof(si)) {
lognotice("Received signal %u", si.ssi_signo);
+ return -1;
}
- return -1;
+ return 0;
});
while ((d.flush(), p.check_events()) != -1) {