Avoid epoll_ctl(..., EPOLL_CTL_DEL, ...) for closed fds.
[srvx.git] / src / ioset-epoll.c
index a6b002eb4dec0e0c26e003c86fea5dd6b7b0c7a7..40e30ba3285bc1d5306ae259167f02a025f3d7c2 100644 (file)
@@ -65,10 +65,11 @@ ioset_epoll_add(struct io_fd *fd)
 }
 
 static void
-ioset_epoll_remove(struct io_fd *fd)
+ioset_epoll_remove(struct io_fd *fd, int closed)
 {
     static struct epoll_event evt;
-    (void)epoll_ctl(epoll_fd, EPOLL_CTL_DEL, fd->fd, &evt);
+    if (!closed)
+        (void)epoll_ctl(epoll_fd, EPOLL_CTL_DEL, fd->fd, &evt);
 }
 
 static void