diff options
-rw-r--r-- | include/freerdp/utils/semaphore.h | 1 | ||||
-rw-r--r-- | libfreerdp-utils/semaphore.c | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/include/freerdp/utils/semaphore.h b/include/freerdp/utils/semaphore.h index 6f630e0..2230af2 100644 --- a/include/freerdp/utils/semaphore.h +++ b/include/freerdp/utils/semaphore.h @@ -23,5 +23,6 @@ void freerdp_sem_create(void * sem_struct, int iv); void freerdp_sem_signal(void * sem_struct); void freerdp_sem_wait(void * sem_struct); +void freerdp_sem_destroy(void * sem_struct); #endif /* __SEMAPHORE_UTILS_H */ diff --git a/libfreerdp-utils/semaphore.c b/libfreerdp-utils/semaphore.c index 8d1acde..3661377 100644 --- a/libfreerdp-utils/semaphore.c +++ b/libfreerdp-utils/semaphore.c @@ -37,6 +37,15 @@ void freerdp_sem_create(void * sem_struct, int iv) #endif } +void freerdp_sem_destroy(void * sem_struct) +{ +#ifdef __APPLE__ + semaphore_destroy(mach_task_self(), *((semaphore_t *)sem_struct)); +#else + sem_destroy((sem_t *)sem_struct); +#endif +} + void freerdp_sem_signal(void * sem_struct) { #ifdef __APPLE__ |