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 -----------------------