|
|
|
@ -2579,11 +2579,14 @@ int _cgsem_mswait(cgsem_t *cgsem, int ms, const char *file, const char *func, co
@@ -2579,11 +2579,14 @@ int _cgsem_mswait(cgsem_t *cgsem, int ms, const char *file, const char *func, co
|
|
|
|
|
ret = read(fd, &buf, 1); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
if (likely(!ret)) |
|
|
|
|
return ETIMEDOUT; |
|
|
|
|
quitfrom(1, file, func, line, "Failed to sem_timedwait errno=%d cgsem=0x%p", errno, cgsem); |
|
|
|
|
/* We don't reach here */ |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
/* Harmless to time out regardless here since we may be waiting on sems
|
|
|
|
|
* during shutdown. */ |
|
|
|
|
if (unlikely(ret)) { |
|
|
|
|
applog(LOG_WARNING, "Failed to sem_timedwait %s %s %d errno=%d cgsem=0x%p", |
|
|
|
|
file, func, line, errno, cgsem); |
|
|
|
|
} |
|
|
|
|
return ETIMEDOUT; |
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
void _cgsem_init(cgsem_t *cgsem, const char *file, const char *func, const int line) |
|
|
|
@ -2617,12 +2620,13 @@ int _cgsem_mswait(cgsem_t *cgsem, int ms, const char *file, const char *func, co
@@ -2617,12 +2620,13 @@ int _cgsem_mswait(cgsem_t *cgsem, int ms, const char *file, const char *func, co
|
|
|
|
|
timeraddspec(&abs_timeout, &ts_now); |
|
|
|
|
ret = sem_timedwait(cgsem, &abs_timeout); |
|
|
|
|
|
|
|
|
|
if (ret) { |
|
|
|
|
if (likely(sock_timeout())) |
|
|
|
|
return ETIMEDOUT; |
|
|
|
|
quitfrom(1, file, func, line, "Failed to sem_timedwait errno=%d cgsem=0x%p", errno, cgsem); |
|
|
|
|
/* Harmless to time out regardless here since we may be waiting on sems
|
|
|
|
|
* during shutdown. */ |
|
|
|
|
if (unlikely(ret && !sock_timeout())) { |
|
|
|
|
applog(LOG_WARNING, "Failed to sem_timedwait %s %s %d errno=%d cgsem=0x%p", |
|
|
|
|
file, func, line, errno, cgsem); |
|
|
|
|
} |
|
|
|
|
return 0; |
|
|
|
|
return ETIMEDOUT; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void cgsem_destroy(cgsem_t *cgsem) |
|
|
|
|