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