diff options
author | Adam <Adam@anope.org> | 2010-08-15 01:45:38 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2010-08-15 01:45:38 -0400 |
commit | a950ed8cabfeca55c909f02412b1788bd386dcff (patch) | |
tree | cfa9a16c2385176490ea849f6a4041ee9456c8eb /modules/socketengines | |
parent | 4d0a1aaabd861bb7cd1e378bd1e600af1d34d5d2 (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')
-rw-r--r-- | modules/socketengines/m_socketengine_epoll.cpp | 8 | ||||
-rw-r--r-- | modules/socketengines/m_socketengine_select.cpp | 2 |
2 files changed, 7 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; diff --git a/modules/socketengines/m_socketengine_select.cpp b/modules/socketengines/m_socketengine_select.cpp index e713915a3..ae82345f6 100644 --- a/modules/socketengines/m_socketengine_select.cpp +++ b/modules/socketengines/m_socketengine_select.cpp @@ -73,6 +73,8 @@ class SocketEngineSelect : public SocketEngineBase { Socket *s = it->second; + if (s->HasFlag(SF_DEAD)) + continue; if (FD_ISSET(s->GetSock(), &efdset)) { s->ProcessError(); |