diff --git a/src/Nazara/Network/Posix/SocketPollerImpl.cpp b/src/Nazara/Network/Posix/SocketPollerImpl.cpp index 76e43ed4f..810427933 100644 --- a/src/Nazara/Network/Posix/SocketPollerImpl.cpp +++ b/src/Nazara/Network/Posix/SocketPollerImpl.cpp @@ -90,6 +90,9 @@ namespace Nz int socketRemaining = activeSockets; for (PollSocket& entry : m_sockets) { + if (!entry.revents) + continue; + if (entry.revents & (POLLRDNORM | POLLWRNORM | POLLHUP | POLLERR)) { if (entry.revents & (POLLRDNORM | POLLHUP | POLLERR)) @@ -105,7 +108,7 @@ namespace Nz } else { - NazaraWarning("Socket " + String::Number(entry.fd) + " was returned by WSAPoll without POLLRDNORM nor POLLWRNORM events (events: 0x" + String::Number(entry.events, 16) + ')'); + NazaraWarning("Socket " + String::Number(entry.fd) + " was returned by WSAPoll without POLLRDNORM nor POLLWRNORM events (events: 0x" + String::Number(entry.revents, 16) + ')'); activeSockets--; } } diff --git a/src/Nazara/Network/Win32/SocketPollerImpl.cpp b/src/Nazara/Network/Win32/SocketPollerImpl.cpp index 40f176da2..43dc9fec2 100644 --- a/src/Nazara/Network/Win32/SocketPollerImpl.cpp +++ b/src/Nazara/Network/Win32/SocketPollerImpl.cpp @@ -143,6 +143,9 @@ namespace Nz int socketRemaining = activeSockets; for (PollSocket& entry : m_sockets) { + if (!entry.revents) + continue; + if (entry.revents & (POLLRDNORM | POLLWRNORM | POLLHUP | POLLERR)) { if (entry.revents & (POLLRDNORM | POLLHUP | POLLERR)) @@ -158,12 +161,11 @@ namespace Nz } else { - NazaraWarning("Socket " + String::Number(entry.fd) + " was returned by WSAPoll without POLLRDNORM nor POLLWRNORM events (events: 0x" + String::Number(entry.events, 16) + ')'); + NazaraWarning("Socket " + String::Number(entry.fd) + " was returned by WSAPoll without POLLRDNORM nor POLLWRNORM events (events: 0x" + String::Number(entry.revents, 16) + ')'); activeSockets--; } } } - #else fd_set* readSet = nullptr; fd_set* writeSet = nullptr;