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;
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());