Fixed time comparison and explicitly delay 1 ms instead of an arbitrary scheduled time.
diff --git a/src/thread/pthread/SDL_syssem.c b/src/thread/pthread/SDL_syssem.c
index 91932f6..b10f9b0 100644
--- a/src/thread/pthread/SDL_syssem.c
+++ b/src/thread/pthread/SDL_syssem.c
@@ -156,10 +156,10 @@ SDL_SemWaitTimeout(SDL_sem * sem, Uint32 timeout)
#else
end = SDL_GetTicks() + timeout;
while ((retval = SDL_SemTryWait(sem)) == SDL_MUTEX_TIMEDOUT) {
- if (SDL_GetTicks() >= end) {
+ if ((Sint32)(SDL_GetTicks() - end) >= 0) {
break;
}
- SDL_Delay(0);
+ SDL_Delay(1);
}
#endif /* HAVE_SEM_TIMEDWAIT */