This commit is contained in:
Jean-Baptiste Perrier
2021-01-26 14:14:27 +01:00
parent ecb20afaa4
commit 1b2dd0aff5

View File

@@ -292,13 +292,18 @@ bool Win32Network::Accept(NetworkSocket& serverSock, NetworkSocket& newSock, Net
return false; return false;
} }
static thread_local int32 error;
bool Win32Network::IsReadable(NetworkSocket& socket) bool Win32Network::IsReadable(NetworkSocket& socket)
{ {
pollfd entry; pollfd entry;
entry.fd = *(SOCKET*)socket.Data;
entry.events = POLLRDNORM; entry.events = POLLRDNORM;
if (WSAPoll(&entry, 1, 0) == SOCKET_ERROR) if (WSAPoll(&entry, 1, 0) == SOCKET_ERROR)
{ {
LOG(Error, "Unable to poll socket! Socket : {0} Error : {1}", *(SOCKET*)socket.Data, GetLastErrorMessage().Get()); error = WSAGetLastError();
if (error == WSAEWOULDBLOCK)
return false;
LOG(Error, "Unable to poll socket! Socket : {0} Error : {1}", *(SOCKET*)socket.Data, GetErrorMessage(error).Get());
return false; return false;
} }
if (entry.revents & POLLRDNORM) if (entry.revents & POLLRDNORM)
@@ -309,10 +314,14 @@ bool Win32Network::IsReadable(NetworkSocket& socket)
bool Win32Network::IsWriteable(NetworkSocket& socket) bool Win32Network::IsWriteable(NetworkSocket& socket)
{ {
pollfd entry; pollfd entry;
entry.fd = *(SOCKET*)socket.Data;
entry.events = POLLWRNORM; entry.events = POLLWRNORM;
if (WSAPoll(&entry, 1, 0) == SOCKET_ERROR) if (WSAPoll(&entry, 1, 0) == SOCKET_ERROR)
{ {
LOG(Error, "Unable to poll socket! Socket : {0} Error : {1}", *(SOCKET*)socket.Data, GetLastErrorMessage().Get()); error = WSAGetLastError();
if (error == WSAEWOULDBLOCK)
return false;
LOG(Error, "Unable to poll socket! Socket : {0} Error : {1}", *(SOCKET*)socket.Data, GetErrorMessage(error).Get());
return false; return false;
} }
if (entry.revents & POLLWRNORM) if (entry.revents & POLLWRNORM)