From 7cd6a5437c263a4e2b64bafdf780d60ce51f941f Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 1 Sep 2022 23:14:03 -0400 Subject: Simplify thread and semaphore status codes --- src/sem.c | 7 +++---- src/status.c | 6 ++++++ 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/sem.c b/src/sem.c index a577b08..325eaa4 100644 --- a/src/sem.c +++ b/src/sem.c @@ -61,7 +61,7 @@ zix_sem_try_wait(ZixSem* sem) const kern_return_t r = semaphore_timedwait(sem->sem, zero); return (r == KERN_SUCCESS) ? ZIX_STATUS_SUCCESS - : (r == KERN_OPERATION_TIMED_OUT) ? ZIX_STATUS_TIMEOUT + : (r == KERN_OPERATION_TIMED_OUT) ? ZIX_STATUS_UNAVAILABLE : ZIX_STATUS_ERROR; } @@ -114,7 +114,7 @@ zix_sem_try_wait(ZixSem* sem) const DWORD r = WaitForSingleObject(sem->sem, 0); return (r == WAIT_OBJECT_0) ? ZIX_STATUS_SUCCESS - : (r == WAIT_TIMEOUT) ? ZIX_STATUS_TIMEOUT + : (r == WAIT_TIMEOUT) ? ZIX_STATUS_UNAVAILABLE : ZIX_STATUS_ERROR; } @@ -171,8 +171,7 @@ zix_sem_try_wait(ZixSem* sem) // Interrupted, try again } - return r ? (errno == EAGAIN ? ZIX_STATUS_TIMEOUT : zix_errno_status(errno)) - : ZIX_STATUS_SUCCESS; + return r ? zix_errno_status(errno) : ZIX_STATUS_SUCCESS; } ZixStatus diff --git a/src/status.c b/src/status.c index ed48952..380d370 100644 --- a/src/status.c +++ b/src/status.c @@ -31,6 +31,8 @@ zix_strerror(const ZixStatus status) return "Overflow"; case ZIX_STATUS_NOT_SUPPORTED: return "Not supported"; + case ZIX_STATUS_UNAVAILABLE: + return "Resource unavailable"; } return "Unknown error"; } @@ -41,6 +43,10 @@ zix_errno_status(const int e) switch (e) { case 0: return ZIX_STATUS_SUCCESS; +#ifdef EAGAIN + case EAGAIN: + return ZIX_STATUS_UNAVAILABLE; +#endif #ifdef EEXIST case EEXIST: return ZIX_STATUS_EXISTS; -- cgit v1.2.1