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)