SocketPoller: Fix behavior on Windows and BSD

This commit is contained in:
Jérôme Leclercq 2017-10-04 16:24:57 +02:00 committed by Lynix
parent 874599fefd
commit 3282534bba
2 changed files with 8 additions and 3 deletions

View File

@ -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--;
}
}

View File

@ -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;