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
static double val(void *priv, double ch)
static int compat_sem_init(dispatch_semaphore_t *psem, int unused, int val)