|
Size: 1517
Comment: minor formatting change
|
Size: 1333
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 3: | Line 3: |
| ||<tablewidth="100%"style="color: rgb(255, 0, 0); text-align: center;">DRAFT || |
|
| Line 7: | Line 5: |
| Use this function to coordinate threads in a multi-threaded environment. This function will unlock the provided mutex and wait for the condition variable to be signaled. Once the condition variable is signaled this function will re-lock the mutex and return. | Use this function to wait until a condition variable is signaled. |
| Line 17: | Line 15: |
| ||'''cond''' ||^the condition pointer whose signal will be waited on.^ || ||'''mutex''' ||^mutex pointer used to gate thread access.^ || |
||'''cond''' ||the condition variable to wait on|| ||'''mutex''' ||the mutex used to coordinate thread access|| |
| Line 25: | Line 22: |
| {{{#!highlight cpp You can add your code example here }}} |
<<Include(SDL_CreateCond, , , from="## Begin Condition Variable Example", to="## End Condition Variable Example")>> |
| Line 30: | Line 25: |
| This function unlocks the specified '''mutex''' and waits on another thread to call [[SDL_CondSignal]]() or [[SDL_CondBroadcast]]() on the condition variable '''cond'''. The '''mutex''' is re-locked once the condition variable is signaled. | This function unlocks the specified '''mutex''' and waits on another thread to call [[SDL_CondSignal]]() or [[SDL_CondBroadcast]]() on the condition variable '''cond'''. Once the condition variable is signaled, the mutex is re-locked and the function returns. |
| Line 32: | Line 27: |
| The mutex must be locked before entering this function. | The mutex must be locked before calling this function. |
| Line 34: | Line 29: |
| This function is the equivalent of calling [[SDL_CondWaitTimeout]] with a time length of SDL_MUTEX_MAXWAIT. | This function is the equivalent of calling [[SDL_CondWaitTimeout]]() with a time length of SDL_MUTEX_MAXWAIT. |
| Line 37: | Line 32: |
| . [[SDL_CondSignal]] * . [[SDL_CondWaitTimeout]] * . [[SDL_mutexP]] * |
.[[SDL_CreateCond]] .[[SDL_CondBroadcast]] .[[SDL_CondSignal]] .[[SDL_CondWaitTimeout]] .[[SDL_DestroyCond]] |
SDL_CondWait
Use this function to wait until a condition variable is signaled.
Contents
Syntax
int SDL_CondWait(SDL_cond* cond,
SDL_mutex* mutex)
Function Parameters
cond |
the condition variable to wait on |
mutex |
the mutex used to coordinate thread access |
Return Value
Returns 0 when it is signaled or a negative error code on failure; call SDL_GetError() for more information.
Code Examples
Typical use of condition variables:
SDL_bool condition = SDL_FALSE;
SDL_mutex *lock;
SDL_cond *cond;
lock = SDL_CreateMutex();
cond = SDL_CreateCond();
.
.
Thread A:
SDL_LockMutex(lock);
while (!condition) {
SDL_CondWait(cond, lock);
}
SDL_UnlockMutex(lock);
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 on another thread to call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable cond. Once the condition variable is signaled, the mutex is re-locked and the function returns.
The mutex must be locked before calling this function.
This function is the equivalent of calling SDL_CondWaitTimeout() with a time length of SDL_MUTEX_MAXWAIT.
