mutex: Removed SDL_MUTEX_MAXWAIT.

Fixes #8436.
main
Ryan C. Gordon 2023-10-26 14:21:53 -04:00
parent 82f48be3ef
commit e6116d399a
No known key found for this signature in database
GPG Key ID: FA148B892AB48044
9 changed files with 13 additions and 16 deletions

View File

@ -707,6 +707,8 @@ The following functions have been renamed:
## SDL_mutex.h
SDL_MUTEX_MAXWAIT has been removed; it suggested there was a maximum timeout one could outlive, instead of an infinite wait. Instead, pass a -1 to functions that accepted this symbol.
SDL_LockMutex and SDL_UnlockMutex now return void; if the mutex is valid (including being a NULL pointer, which returns immediately), these functions never fail. If the mutex is invalid or the caller does something illegal, like unlock another thread's mutex, this is considered undefined behavior.
The following functions have been renamed:

View File

@ -121,11 +121,6 @@ extern "C" {
*/
#define SDL_MUTEX_TIMEDOUT 1
/**
* This is the timeout value which corresponds to never time out.
*/
#define SDL_MUTEX_MAXWAIT -1
/**
* \name Mutex functions
@ -535,7 +530,7 @@ extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_Semaphore *sem);
* semaphore value.
*
* This function is the equivalent of calling SDL_WaitSemaphoreTimeout() with
* a time length of `SDL_MUTEX_MAXWAIT`.
* a time length of -1.
*
* \param sem the semaphore wait on
* \returns 0 on success or a negative error code on failure; call
@ -722,7 +717,7 @@ extern DECLSPEC int SDLCALL SDL_BroadcastCondition(SDL_Condition *cond);
* behavior.
*
* This function is the equivalent of calling SDL_WaitConditionTimeout() with
* a time length of `SDL_MUTEX_MAXWAIT`.
* a time length of -1.
*
* \param cond the condition variable to wait on
* \param mutex the mutex used to coordinate thread access
@ -755,7 +750,7 @@ extern DECLSPEC int SDLCALL SDL_WaitCondition(SDL_Condition *cond, SDL_Mutex *mu
* \param cond the condition variable to wait on
* \param mutex the mutex used to coordinate thread access
* \param timeoutMS the maximum time to wait, in milliseconds, or
* `SDL_MUTEX_MAXWAIT` to wait indefinitely
* -1 to wait indefinitely
* \returns 0 if the condition variable is signaled, `SDL_MUTEX_TIMEDOUT` if
* the condition is not signaled in the allotted time, or a negative
* error code on failure; call SDL_GetError() for more information.

View File

@ -472,7 +472,7 @@ void SDL_DetachThread(SDL_Thread *thread)
int SDL_WaitSemaphore(SDL_Semaphore *sem)
{
return SDL_WaitSemaphoreTimeoutNS(sem, SDL_MUTEX_MAXWAIT);
return SDL_WaitSemaphoreTimeoutNS(sem, -1);
}
int SDL_TryWaitSemaphore(SDL_Semaphore *sem)
@ -494,7 +494,7 @@ int SDL_WaitSemaphoreTimeout(SDL_Semaphore *sem, Sint32 timeoutMS)
int SDL_WaitCondition(SDL_Condition *cond, SDL_Mutex *mutex)
{
return SDL_WaitConditionTimeoutNS(cond, mutex, SDL_MUTEX_MAXWAIT);
return SDL_WaitConditionTimeoutNS(cond, mutex, -1);
}
int SDL_WaitConditionTimeout(SDL_Condition *cond, SDL_Mutex *mutex, Sint32 timeoutMS)

View File

@ -67,7 +67,7 @@ int SDL_WaitSemaphoreTimeoutNS(SDL_Semaphore *sem, Sint64 timeoutNS)
return SDL_InvalidParamError("sem");
}
if (timeoutNS == SDL_MUTEX_MAXWAIT) {
if (timeoutNS == -1) { // -1 == wait indefinitely.
LightSemaphore_Acquire(&sem->semaphore, 1);
return 0;
}

View File

@ -114,7 +114,7 @@ int SDL_WaitSemaphoreTimeoutNS(SDL_Semaphore *sem, Sint64 timeoutNS)
return SDL_MUTEX_TIMEOUT;
}
if (timeoutNS == SDL_MUTEX_MAXWAIT) {
if (timeoutNS == -1) { // -1 == wait indefinitely.
WaitAll(sem);
return 0;
}

View File

@ -96,7 +96,7 @@ int SDL_WaitSemaphoreTimeoutNS(SDL_Semaphore *sem, Sint64 timeoutNS)
return 0;
}
if (timeoutNS != SDL_MUTEX_MAXWAIT) {
if (timeoutNS != -1) { // -1 == wait indefinitely.
SetTimerAlarm(&alarm, MSec2TimerBusClock(SDL_NS_TO_MS(timeoutNS)), &usercb, (void *)GetThreadId());
}

View File

@ -70,7 +70,7 @@ void SDL_DestroySemaphore(SDL_Semaphore *sem)
}
/* TODO: This routine is a bit overloaded.
* If the timeout is 0 then just poll the semaphore; if it's SDL_MUTEX_MAXWAIT, pass
* If the timeout is 0 then just poll the semaphore; if it's -1, pass
* NULL to sceKernelWaitSema() so that it waits indefinitely; and if the timeout
* is specified, convert it to microseconds. */
int SDL_WaitSemaphoreTimeoutNS(SDL_Semaphore *sem, Sint64 timeoutNS)

View File

@ -71,7 +71,7 @@ void SDL_DestroySemaphore(SDL_Semaphore *sem)
}
/* TODO: This routine is a bit overloaded.
* If the timeout is 0 then just poll the semaphore; if it's SDL_MUTEX_MAXWAIT, pass
* If the timeout is 0 then just poll the semaphore; if it's -1, pass
* NULL to sceKernelWaitSema() so that it waits indefinitely; and if the timeout
* is specified, convert it to microseconds. */
int SDL_WaitSemaphoreTimeoutNS(SDL_Semaphore *sem, Sint64 timeoutNS)

View File

@ -141,7 +141,7 @@ static int SDLCALL SDL_TimerThread(void *_data)
}
/* Initial delay if there are no timers */
delay = (Uint64)SDL_MUTEX_MAXWAIT;
delay = (Uint64)-1;
tick = SDL_GetTicksNS();