mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-30 16:34:23 +00:00
Check for correct timeout error in cgsem_mswait
This commit is contained in:
parent
51f8107b32
commit
6e948d8750
2
util.c
2
util.c
@ -2472,7 +2472,7 @@ int _cgsem_mswait(cgsem_t *cgsem, int ms, const char *file, const char *func, co
|
|||||||
timeraddspec(&abs_timeout, &ts_now);
|
timeraddspec(&abs_timeout, &ts_now);
|
||||||
ret = sem_timedwait(cgsem, &abs_timeout);
|
ret = sem_timedwait(cgsem, &abs_timeout);
|
||||||
|
|
||||||
if (unlikely(ret && ret != ETIMEDOUT))
|
if (unlikely(ret && !sock_timeout()))
|
||||||
quitfrom(1, file, func, line, "Failed to sem_timedwait errno=%d cgsem=0x%p", errno, cgsem);
|
quitfrom(1, file, func, line, "Failed to sem_timedwait errno=%d cgsem=0x%p", errno, cgsem);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
8
util.h
8
util.h
@ -20,6 +20,10 @@
|
|||||||
{
|
{
|
||||||
return (errno == EAGAIN || errno == EWOULDBLOCK);
|
return (errno == EAGAIN || errno == EWOULDBLOCK);
|
||||||
}
|
}
|
||||||
|
static inline bool sock_timeout(void)
|
||||||
|
{
|
||||||
|
return (errno == ETIMEDOUT);
|
||||||
|
}
|
||||||
#elif defined WIN32
|
#elif defined WIN32
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
@ -37,6 +41,10 @@
|
|||||||
{
|
{
|
||||||
return (WSAGetLastError() == WSAEWOULDBLOCK);
|
return (WSAGetLastError() == WSAEWOULDBLOCK);
|
||||||
}
|
}
|
||||||
|
static inline bool sock_timeout(void)
|
||||||
|
{
|
||||||
|
return (WSAGetLastError() == WSAETIMEDOUT);
|
||||||
|
}
|
||||||
#ifndef SHUT_RDWR
|
#ifndef SHUT_RDWR
|
||||||
#define SHUT_RDWR SD_BOTH
|
#define SHUT_RDWR SD_BOTH
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user