diff --git a/src/thread/generic/SDL_syssem.c b/src/thread/generic/SDL_syssem.c index b7a4ef493..9531bd88d 100644 --- a/src/thread/generic/SDL_syssem.c +++ b/src/thread/generic/SDL_syssem.c @@ -176,7 +176,9 @@ SDL_SemWaitTimeout(SDL_sem * sem, Uint32 timeout) sem->count_lock, timeout); } --sem->waiters_count; - --sem->count; + if (retval == 0) { + --sem->count; + } SDL_UnlockMutex(sem->count_lock); return retval;