summaryrefslogtreecommitdiff
path: root/src/socketengine_epoll.cpp
diff options
context:
space:
mode:
authorGravatar brain2006-10-06 19:59:09 +0000
committerGravatar brain2006-10-06 19:59:09 +0000
commit457e12e54100eaff493595d5042fa85f00d261c5 (patch)
treee63d33f0ee0af39ca15b683a92f2b8e7c33e3717 /src/socketengine_epoll.cpp
parentAdd extra debugging for socketengines, will now report OS error string when f... (diff)
Make the socketengines always clear the slots on DelFd, even if the underlying queue call fails
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5437 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/socketengine_epoll.cpp')
-rw-r--r--src/socketengine_epoll.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/socketengine_epoll.cpp b/src/socketengine_epoll.cpp
index 9cc5f90f0..7d35997c5 100644
--- a/src/socketengine_epoll.cpp
+++ b/src/socketengine_epoll.cpp
@@ -90,14 +90,16 @@ bool EPollEngine::DelFd(EventHandler* eh)
eh->Readable() ? ev.events = EPOLLIN : ev.events = EPOLLOUT;
ev.data.fd = fd;
int i = epoll_ctl(EngineHandle, EPOLL_CTL_DEL, fd, &ev);
+
+ CurrentSetSize--;
+ ref[fd] = NULL;
+
if (i < 0)
{
ServerInstance->Log(DEBUG,"epoll: List deletion failure: %s",strerror(errno));
return false;
}
- CurrentSetSize--;
- ref[fd] = NULL;
return true;
}