19 #ifndef COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H 20 #define COMPAT_DISPATCH_SEMAPHORE_SEMAPHORE_H 22 #include <dispatch/dispatch.h> 25 #define sem_t dispatch_semaphore_t 26 #define sem_post(psem) dispatch_semaphore_signal(*psem) 27 #define sem_wait(psem) dispatch_semaphore_wait(*psem, DISPATCH_TIME_FOREVER) 28 #define sem_timedwait(psem, val) dispatch_semaphore_wait(*psem, dispatch_walltime(val, 0)) 29 #define sem_destroy(psem) dispatch_release(*psem) 34 int ret = !!(*psem = dispatch_semaphore_create(val)) - 1;
40 #define sem_init compat_sem_init const char const char void * val
static int compat_sem_init(dispatch_semaphore_t *psem, int unused, int val)