diff options
| author | oy <Tom_Adams@web.de> | 2012-06-10 12:14:41 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2013-02-24 17:35:51 +0100 |
| commit | b7e5bb54ad77545ae139115a1a64f9ebb7160006 (patch) | |
| tree | 020e1c8f563e63a7753274a2f2a49d63e3722a94 /src/base/system.c | |
| parent | 1a62770a5691157f83061eedd2e3ce7d3fa33f62 (diff) | |
| download | zcatch-b7e5bb54ad77545ae139115a1a64f9ebb7160006.tar.gz zcatch-b7e5bb54ad77545ae139115a1a64f9ebb7160006.zip | |
fixed semaphore on macosx
Diffstat (limited to 'src/base/system.c')
| -rw-r--r-- | src/base/system.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/base/system.c b/src/base/system.c index 7f98efe1..1c4d3a48 100644 --- a/src/base/system.c +++ b/src/base/system.c @@ -505,18 +505,20 @@ 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) { *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 +#if !defined(CONF_PLATFORM_MACOSX) + #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) { *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 #endif |