summaryrefslogtreecommitdiff
path: root/modules/socketengines/m_socketengine_epoll.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-08-15 01:45:38 -0400
committerAdam <Adam@anope.org>2010-08-15 01:45:38 -0400
commita950ed8cabfeca55c909f02412b1788bd386dcff (patch)
treecfa9a16c2385176490ea849f6a4041ee9456c8eb /modules/socketengines/m_socketengine_epoll.cpp
parent4d0a1aaabd861bb7cd1e378bd1e600af1d34d5d2 (diff)
Rewrote the MySQL API to use threads. This acts similar to before, but is faster. Removed db_mysql_execute for now.
Diffstat (limited to 'modules/socketengines/m_socketengine_epoll.cpp')
-rw-r--r--modules/socketengines/m_socketengine_epoll.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/modules/socketengines/m_socketengine_epoll.cpp b/modules/socketengines/m_socketengine_epoll.cpp
index 5f8569a75..05978caf0 100644
--- a/modules/socketengines/m_socketengine_epoll.cpp
+++ b/modules/socketengines/m_socketengine_epoll.cpp
@@ -121,6 +121,8 @@ class SocketEngineEPoll : public SocketEngineBase
epoll_event *ev = &events[i];
Socket *s = Sockets[ev->data.fd];
+ if (s->HasFlag(SF_DEAD))
+ continue;
if (ev->events & (EPOLLHUP | EPOLLERR))
{
s->ProcessError();
@@ -135,10 +137,10 @@ class SocketEngineEPoll : public SocketEngineBase
s->SetFlag(SF_DEAD);
}
- for (std::map<int, Socket *>::iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end; )
+ for (int i = 0; i < total; ++i)
{
- Socket *s = it->second;
- ++it;
+ epoll_event *ev = &events[i];
+ Socket *s = Sockets[ev->data.fd];
if (s->HasFlag(SF_DEAD))
delete s;