]> git.lizzy.rs Git - minetest.git/blobdiff - src/jthread/pthread/jsemaphore.cpp
Fixes #1687 by extra semaphore retval handle code for OSX
[minetest.git] / src / jthread / pthread / jsemaphore.cpp
index 609e2f518f47609614c50491db3f64379ed6731c..16e001e9264eb59ff90b8453665beb88443bf3bd 100644 (file)
@@ -115,6 +115,13 @@ bool JSemaphore::Wait(unsigned int time_ms) {
        errno = 0;
 #ifdef __MACH__
        int sem_wait_retval = semaphore_timedwait(m_semaphore, waittime);
+       if (sem_wait_retval == KERN_OPERATION_TIMED_OUT) {
+               errno = ETIMEDOUT;
+       } else if (sem_wait_retval == KERN_ABORTED) {
+               errno = EINTR;
+       } else if (sem_wait_retval != 0) {
+               errno = EINVAL;
+       }
 #else
        int sem_wait_retval = sem_timedwait(&m_semaphore, &waittime);
 #endif