Committer  : entrope
CVSROOT    : /cvsroot/undernet-ircu
Module     : ircu2.10
Commit time: 2004-11-10 03:37:55 UTC

Modified files:
     ircd/engine_epoll.c ChangeLog

Log message:

Avoid making an epoll_ctl() call that will always fail with EBADF.

---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.507 ircu2.10/ChangeLog:1.508
--- ircu2.10/ChangeLog:1.507    Sun Nov  7 13:34:34 2004
+++ ircu2.10/ChangeLog  Tue Nov  9 19:37:36 2004
@@ -1,3 +1,8 @@
+2004-11-09  Michael Poole <[EMAIL PROTECTED]>
+
+       * ircd/engine_epoll.c (engine_delete): Do not attempt to remove a
+       socket from epoll on delete, since the kernel does that for us.
+
 2004-11-07  Michael Poole <[EMAIL PROTECTED]>
 
        * ircd/m_server.c (m_server, ms_server): Assign timestamp before
Index: ircu2.10/ircd/engine_epoll.c
diff -u ircu2.10/ircd/engine_epoll.c:1.6 ircu2.10/ircd/engine_epoll.c:1.7
--- ircu2.10/ircd/engine_epoll.c:1.6    Sun Nov  7 13:04:58 2004
+++ ircu2.10/ircd/engine_epoll.c        Tue Nov  9 19:37:35 2004
@@ -18,7 +18,7 @@
  */
 /** @file
  * @brief Linux epoll_*() event engine.
- * @version $Id: engine_epoll.c,v 1.6 2004/11/07 21:04:58 entrope Exp $
+ * @version $Id: engine_epoll.c,v 1.7 2004/11/10 03:37:35 entrope Exp $
  */
 #include "config.h"
 
@@ -212,15 +212,10 @@
 static void
 engine_delete(struct Socket *sock)
 {
-  struct epoll_event evt;
-
   assert(0 != sock);
-  memset(&evt, 0, sizeof(evt));
   Debug((DEBUG_ENGINE, "epoll: Deleting socket %d [%p], state %s",
         s_fd(sock), sock, state_to_name(s_state(sock))));
-  if (epoll_ctl(epoll_fd, EPOLL_CTL_DEL, s_fd(sock), &evt) < 0)
-    log_write(LS_SOCKET, L_WARNING, 0,
-              "Unable to delete epoll item for socket %d", s_fd(sock));
+  /* No action necessary; epoll removes the socket on close(). */
 }
 
 /** Run engine event loop.
----------------------- End of diff -----------------------

Reply via email to