summaryrefslogtreecommitdiff
path: root/src/jthread/pthread/jevent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/jthread/pthread/jevent.cpp')
-rw-r--r--src/jthread/pthread/jevent.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/jthread/pthread/jevent.cpp b/src/jthread/pthread/jevent.cpp
index 26a6fb05c..6a45a37d2 100644
--- a/src/jthread/pthread/jevent.cpp
+++ b/src/jthread/pthread/jevent.cpp
@@ -29,6 +29,19 @@
#define UNUSED(expr) do { (void)(expr); } while (0)
+#ifdef __MACH__
+#undef sem_t
+#define sem_t semaphore_t
+#undef sem_init
+#define sem_init(s, p, c) semaphore_create(mach_task_self(), (s), 0, (c))
+#undef sem_wait
+#define sem_wait(s) semaphore_wait(*(s))
+#undef sem_post
+#define sem_post(s) semaphore_signal(*(s))
+#undef sem_destroy
+#define sem_destroy(s) semaphore_destroy(mach_task_self(), *(s))
+#endif
+
Event::Event() {
int sem_init_retval = sem_init(&sem, 0, 0);
assert(sem_init_retval == 0);