From 48ef3f6b30776968cbd7c35602cc9b704b7e13f8 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 25 Sep 2016 03:16:48 +0200 Subject: [PATCH] Network/SocketPoller: Fix poll implementation (Windows > Vista, Unix) Former-commit-id: dd5517d6b15bdb2ed9be4f89ff06ddeeeb3fec30 [formerly 4aef580c50c04256503fbbdfe21924f0b97b6c09] [formerly 9d904c520de9a74292cc1af09b6a5b46617a1d49 [formerly d31432a7eb98825413abb0de333b6ceb9c2d400b]] Former-commit-id: 362f4a43f24dce67763fe4978e34da74fbd39148 [formerly 93ca7cbcd7f3368f4ecd3fa87ed512a3b55faaba] Former-commit-id: e147094e1a7c7540afb972a9ccd116d7444e0fea --- src/Nazara/Network/Posix/SocketPollerImpl.cpp | 3 ++- src/Nazara/Network/Win32/SocketPollerImpl.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Nazara/Network/Posix/SocketPollerImpl.cpp b/src/Nazara/Network/Posix/SocketPollerImpl.cpp index 6b279ec50..4242e79a9 100644 --- a/src/Nazara/Network/Posix/SocketPollerImpl.cpp +++ b/src/Nazara/Network/Posix/SocketPollerImpl.cpp @@ -76,12 +76,13 @@ namespace Nz m_activeSockets.clear(); if (activeSockets > 0U) { + int socketRemaining = activeSockets; for (PollSocket& entry : m_sockets) { if (entry.revents & POLLRDNORM) { m_activeSockets.insert(entry.fd); - if (--activeSockets == 0) + if (--socketRemaining == 0) break; } } diff --git a/src/Nazara/Network/Win32/SocketPollerImpl.cpp b/src/Nazara/Network/Win32/SocketPollerImpl.cpp index b71e5107c..dd80c233d 100644 --- a/src/Nazara/Network/Win32/SocketPollerImpl.cpp +++ b/src/Nazara/Network/Win32/SocketPollerImpl.cpp @@ -112,12 +112,13 @@ namespace Nz m_activeSockets.clear(); if (activeSockets > 0U) { + int socketRemaining = activeSockets; for (PollSocket& entry : m_sockets) { if (entry.revents & POLLRDNORM) { m_activeSockets.insert(entry.fd); - if (--activeSockets == 0) + if (--socketRemaining == 0) break; } }