From: Michael Poole Date: Wed, 10 Nov 2004 03:37:36 +0000 (+0000) Subject: Avoid making an epoll_ctl() call that will always fail with EBADF. X-Git-Url: http://git.pk910.de/?a=commitdiff_plain;h=f70dc8a1a2a8e2299569b01be665284a73384929;p=ircu2.10.12-pk.git Avoid making an epoll_ctl() call that will always fail with EBADF. git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@1267 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- diff --git a/ChangeLog b/ChangeLog index 9a00b2b..6a020d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-11-09 Michael Poole + + * 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 * ircd/m_server.c (m_server, ms_server): Assign timestamp before diff --git a/ircd/engine_epoll.c b/ircd/engine_epoll.c index 257e70d..c44e135 100644 --- a/ircd/engine_epoll.c +++ b/ircd/engine_epoll.c @@ -212,15 +212,10 @@ engine_set_events(struct Socket *sock, unsigned new_events) 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.