From 87d0fc8bb514ba727bbf4822fe21a8a70511987d Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 26 Dec 2010 20:15:54 -0500 Subject: Fixed poll engine to not reorder sockets if we remove the last socket because there is no need --- modules/socketengines/m_socketengine_poll.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules/socketengines/m_socketengine_poll.cpp') diff --git a/modules/socketengines/m_socketengine_poll.cpp b/modules/socketengines/m_socketengine_poll.cpp index 044a79c4f..7a252f1f0 100644 --- a/modules/socketengines/m_socketengine_poll.cpp +++ b/modules/socketengines/m_socketengine_poll.cpp @@ -72,7 +72,7 @@ class SocketEnginePoll : public SocketEngineBase return; } - if (pos->second != SocketCount) + if (pos->second != SocketCount - 1) { pollfd *ev = &this->events[pos->second], *last_ev = &this->events[SocketCount - 1]; -- cgit From fce491e18c654c84f7d379beb202faa28f3b2b64 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 27 Dec 2010 00:41:04 -0500 Subject: Made socket engine stop processing once all sockets have been checked --- modules/socketengines/m_socketengine_poll.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'modules/socketengines/m_socketengine_poll.cpp') 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)) -- cgit