]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/DSKQXS.pm
dskqxs: ignore EV_SET errors on EVFILT_WRITE
[public-inbox.git] / lib / PublicInbox / DSKQXS.pm
index a815945a24c8cad572e138e0ea85f21e0f6a201c..35cdecda8985965578c5aa4283885dd384596afb 100644 (file)
@@ -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));