From 001aa3ba4a53110c02efa1660a597cff4fa9330c Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 5 Apr 2016 19:08:41 +0200 Subject: [PATCH] Add ssem_get - SDL_SemValue equivalent --- libretro-common/include/rthreads/rsemaphore.h | 2 ++ libretro-common/rthreads/rsemaphore.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/libretro-common/include/rthreads/rsemaphore.h b/libretro-common/include/rthreads/rsemaphore.h index dacd4b47e8..6c0f1a392d 100644 --- a/libretro-common/include/rthreads/rsemaphore.h +++ b/libretro-common/include/rthreads/rsemaphore.h @@ -41,6 +41,8 @@ ssem_t *ssem_new(int value); void ssem_free(ssem_t *semaphore); +int ssem_get(ssem_t *semaphore); + void ssem_wait(ssem_t *semaphore); void ssem_signal(ssem_t *semaphore); diff --git a/libretro-common/rthreads/rsemaphore.c b/libretro-common/rthreads/rsemaphore.c index f3d67f4ef3..1e7cc852bd 100644 --- a/libretro-common/rthreads/rsemaphore.c +++ b/libretro-common/rthreads/rsemaphore.c @@ -77,6 +77,21 @@ void ssem_free(ssem_t *semaphore) free((void*)semaphore); } +int ssem_get(ssem_t *semaphore) +{ + int val = 0; + if (!semaphore) + return 0; + + slock_lock(semaphore->mutex); + + val = semaphore->value; + + slock_unlock(semaphore->mutex); + + return val; +} + void ssem_wait(ssem_t *semaphore) { if (!semaphore)