diff options
Diffstat (limited to 'modules/socketengines/m_socketengine_poll.cpp')
-rw-r--r-- | modules/socketengines/m_socketengine_poll.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modules/socketengines/m_socketengine_poll.cpp b/modules/socketengines/m_socketengine_poll.cpp index 7a252f1f0..5b44f8674 100644 --- a/modules/socketengines/m_socketengine_poll.cpp +++ b/modules/socketengines/m_socketengine_poll.cpp @@ -137,9 +137,13 @@ class SocketEnginePoll : public SocketEngineBase return; } - for (int i = 0; i < total; ++i) + for (int i = 0, processed = 0; i < SocketCount && processed != total; ++i) { pollfd *ev = &this->events[i]; + + if (ev->revents != 0) + ++processed; + Socket *s = Sockets[ev->fd]; if (s->HasFlag(SF_DEAD)) |