about summary refs log tree commit diff
path: root/src/base/system.c
diff options
context:
space:
mode:
authoroy <tom_adams@web.de>2012-01-03 15:40:30 -0800
committeroy <tom_adams@web.de>2012-01-03 15:40:30 -0800
commit7328098f8d03e65975ec82162d2049f46fed223d (patch)
tree1c42d719df3971a3a8558a6a1a30c68b4b6f574e /src/base/system.c
parentc975390195eed17c615bbebfab981a2394dec424 (diff)
parent7393151b6d4cbfd8c4be29145344dcce22aa47d7 (diff)
downloadzcatch-7328098f8d03e65975ec82162d2049f46fed223d.tar.gz
zcatch-7328098f8d03e65975ec82162d2049f46fed223d.zip
Merge pull request #912 from matricks/threadedflip
Threadedflip
Diffstat (limited to 'src/base/system.c')
-rw-r--r--src/base/system.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/base/system.c b/src/base/system.c
index bf06a36e..a11caf4c 100644
--- a/src/base/system.c
+++ b/src/base/system.c
@@ -505,6 +505,21 @@ void lock_release(LOCK lock)
 #endif
 }
 
+#if defined(CONF_FAMILY_UNIX)
+void semaphore_init(SEMAPHORE *sem) { sem_init(sem, 0, 0); }
+void semaphore_wait(SEMAPHORE *sem) { sem_wait(sem); }
+void semaphore_signal(SEMAPHORE *sem) { sem_post(sem); }
+void semaphore_destroy(SEMAPHORE *sem) { sem_destroy(sem); }
+#elif defined(CONF_FAMILY_WINDOWS)
+void semaphore_init(SEMAPHORE *sem) { (HANDLE)(*sem) = CreateSemaphore(0, 0, 10000, 0); }
+void semaphore_wait(SEMAPHORE *sem) { WaitForSingleObject((HANDLE)*sem, 0L); }
+void semaphore_signal(SEMAPHORE *sem) { ReleaseSemaphore((HANDLE)*sem, 1, NULL); }
+void semaphore_destroy(SEMAPHORE *sem) { CloseHandle((HANDLE)*sem); }
+#else
+	#error not implemented on this platform
+#endif
+
+
 /* -----  time ----- */
 int64 time_get()
 {