sdlWaitConditionTimeout function
Wait until a condition variable is signaled or a certain time has passed.
This function unlocks the specified mutex
and waits for another thread to
call SDL_SignalCondition() or SDL_BroadcastCondition() on the condition
variable cond
, or for the specified time to elapse. Once the condition
variable is signaled or the time elapsed, the mutex is re-locked and the
function returns.
The mutex must be locked before calling this function. Locking the mutex recursively (more than once) is not supported and leads to undefined behavior.
\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 -1 to wait indefinitely. \returns true if the condition variable is signaled, false if the condition is not signaled in the allotted time.
\threadsafety It is safe to call this function from any thread.
\since This function is available since SDL 3.1.3.
\sa SDL_BroadcastCondition \sa SDL_SignalCondition \sa SDL_WaitCondition
extern SDL_DECLSPEC bool SDLCALL SDL_WaitConditionTimeout(SDL_Condition *cond, SDL_Mutex *mutex, Sint32 timeoutMS)
Implementation
bool sdlWaitConditionTimeout(
Pointer<SdlCondition> cond, Pointer<SdlMutex> mutex, int timeoutMs) {
final sdlWaitConditionTimeoutLookupFunction = libSdl3.lookupFunction<
Uint8 Function(
Pointer<SdlCondition> cond, Pointer<SdlMutex> mutex, Int32 timeoutMs),
int Function(Pointer<SdlCondition> cond, Pointer<SdlMutex> mutex,
int timeoutMs)>('SDL_WaitConditionTimeout');
return sdlWaitConditionTimeoutLookupFunction(cond, mutex, timeoutMs) == 1;
}