X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FDSKQXS.pm;h=35cdecda8985965578c5aa4283885dd384596afb;hb=6d10213d5121ac6b71221acff3caa68ba9a8bc52;hp=a815945a24c8cad572e138e0ea85f21e0f6a201c;hpb=95bdac7f09c69036efed537a4d03d5bdd2ae4eb6;p=public-inbox.git diff --git a/lib/PublicInbox/DSKQXS.pm b/lib/PublicInbox/DSKQXS.pm index a815945a..35cdecda 100644 --- a/lib/PublicInbox/DSKQXS.pm +++ b/lib/PublicInbox/DSKQXS.pm @@ -10,8 +10,6 @@ # support cases public-inbox-nntpd/httpd care about. # # It also implements signalfd(2) emulation via "tie". -# -# A pure-Perl version using syscall() is planned. package PublicInbox::DSKQXS; use strict; use warnings; @@ -107,10 +105,10 @@ sub epoll_ctl { my $kq = $self->{kq}; if ($op == EPOLL_CTL_MOD) { $kq->EV_SET($fd, EVFILT_READ, kq_flag(EPOLLIN, $ev)); - $kq->EV_SET($fd, EVFILT_WRITE, kq_flag(EPOLLOUT, $ev)); + eval { $kq->EV_SET($fd, EVFILT_WRITE, kq_flag(EPOLLOUT, $ev)) }; } elsif ($op == EPOLL_CTL_DEL) { $kq->EV_SET($fd, EVFILT_READ, EV_DISABLE); - $kq->EV_SET($fd, EVFILT_WRITE, EV_DISABLE); + eval { $kq->EV_SET($fd, EVFILT_WRITE, EV_DISABLE) }; } else { # EPOLL_CTL_ADD $kq->EV_SET($fd, EVFILT_READ, EV_ADD|kq_flag(EPOLLIN, $ev));