diff options
| author | oy <tom_adams@web.de> | 2012-01-03 15:40:30 -0800 |
|---|---|---|
| committer | oy <tom_adams@web.de> | 2012-01-03 15:40:30 -0800 |
| commit | 7328098f8d03e65975ec82162d2049f46fed223d (patch) | |
| tree | 1c42d719df3971a3a8558a6a1a30c68b4b6f574e /src/base/system.c | |
| parent | c975390195eed17c615bbebfab981a2394dec424 (diff) | |
| parent | 7393151b6d4cbfd8c4be29145344dcce22aa47d7 (diff) | |
| download | zcatch-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.c | 15 |
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() { |