#pragma section-numbers off #pragma camelcase off = SDL_CondWaitTimeout = Use this function to wait until a condition variable is signaled or a specified amount of time has passed. <> == Syntax == {{{#!highlight cpp int SDL_CondWaitTimeout(SDL_cond* cond, SDL_mutex* mutex, Uint32 ms) }}} == Function Parameters == ||'''cond''' ||the condition variable to wait on|| ||'''mutex''' ||the mutex used to coordinate thread access|| ||'''ms''' ||the maximum time to wait in milliseconds, or SDL_MUTEX_MAXWAIT to wait indefinitely|| == Return Value == 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. == Code Examples == {{{#!highlight cpp SDL_bool condition = SDL_FALSE; SDL_mutex *lock; SDL_cond *cond; lock = SDL_CreateMutex(); cond = SDL_CreateCond(); . . Thread A: const Uint32 timeout = 1000; /* wake up every second */ while (!done) { SDL_LockMutex(lock); while (!condition && SDL_CondWaitTimeout(cond, lock, timeout) == 0) { continue; } SDL_UnlockMutex(lock); if (condition) { ... } ... do some periodic work } Thread B: SDL_LockMutex(lock); ... condition = SDL_TRUE; ... SDL_CondSignal(cond); SDL_UnlockMutex(lock); . . SDL_DestroyCond(cond); SDL_DestroyMutex(lock); }}} == Remarks == This function unlocks the specified '''mutex''' and waits for another thread to call [[SDL_CondSignal]]() or [[SDL_CondBroadcast]]() 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. == Related Functions == .[[SDL_CondBroadcast]] .[[SDL_CondSignal]] .[[SDL_CondWait]] .[[SDL_CreateCond]] .[[SDL_DestroyCond]] ---- [[CategoryAPI]], [[CategoryMutex]]