diff options
author | DukePyrolator <DukePyrolator@anope.org> | 2010-12-28 07:00:47 +0100 |
---|---|---|
committer | DukePyrolator <DukePyrolator@anope.org> | 2010-12-28 07:00:47 +0100 |
commit | fd7f542bd9fadb6b17618c8cda898b795be2c03f (patch) | |
tree | 5e78be7a79d7f0dddf8862b82124979f8ae0038e /modules/socketengines/m_socketengine_select.cpp | |
parent | f638d1078ab5ab630ce9393fe87edd630abdf75a (diff) | |
parent | 5ead326454ccc369f8b3b4ef91971b45e7e01072 (diff) |
Merge branch '1.9' of ssh://anope.git.sourceforge.net/gitroot/anope/anope into 1.9
Diffstat (limited to 'modules/socketengines/m_socketengine_select.cpp')
-rw-r--r-- | modules/socketengines/m_socketengine_select.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/modules/socketengines/m_socketengine_select.cpp b/modules/socketengines/m_socketengine_select.cpp index b1c1c065f..3ea9eab27 100644 --- a/modules/socketengines/m_socketengine_select.cpp +++ b/modules/socketengines/m_socketengine_select.cpp @@ -73,10 +73,13 @@ class SocketEngineSelect : public SocketEngineBase } else if (sresult) { - for (std::map<int, Socket *>::const_iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end; ++it) + int processed = 0; + for (std::map<int, Socket *>::const_iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end && processed != sresult; ++it) { Socket *s = it->second; + if (FD_ISSET(s->GetFD(), &efdset) || FD_ISSET(s->GetFD(), &rfdset) || FD_ISSET(s->GetFD(), &wfdset)) + ++processed; if (s->HasFlag(SF_DEAD)) continue; if (FD_ISSET(s->GetFD(), &efdset)) |