X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fposix%2Fos-threads.h;h=89f822b0dec300a89aee85d2f55e62871fac9080;hb=3a99ce7f6d43f2bb1b35d7365d1ca476cd967626;hp=c37beed2bef14f5a0e998c30c953d43968210e2e;hpb=1ea419fa5dcfa91666239d6ff86520605f95ba51;p=deb_libcec.git diff --git a/src/lib/platform/posix/os-threads.h b/src/lib/platform/posix/os-threads.h index c37beed..89f822b 100644 --- a/src/lib/platform/posix/os-threads.h +++ b/src/lib/platform/posix/os-threads.h @@ -49,7 +49,14 @@ namespace PLATFORM inline struct timespec GetAbsTime(uint64_t iIncreaseBy = 0) { struct timespec now; + #ifdef __APPLE__ + struct timeval tv; + gettimeofday(&tv, NULL); + now.tv_sec = tv.tv_sec; + now.tv_nsec = tv.tv_usec * 1000; + #else clock_gettime(CLOCK_REALTIME, &now); + #endif now.tv_nsec += iIncreaseBy % 1000 * 1000000; now.tv_sec += iIncreaseBy / 1000 + now.tv_nsec / 1000000000; now.tv_nsec %= 1000000000; @@ -59,7 +66,7 @@ namespace PLATFORM typedef pthread_t thread_t; #define ThreadsCreate(thread, func, arg) (pthread_create(&thread, NULL, (void *(*) (void *))func, (void *)arg) == 0) - #define ThreadsWait(thread, retval) (pthread_join(thread, retval) == 0) + #define ThreadsWait(thread, retval) (thread ? pthread_join(thread, retval) == 0 : true) typedef pthread_mutex_t mutex_t; #define MutexCreate(mutex) pthread_mutex_init(&mutex, GetRecursiveMutexAttribute());