Restart all threads that are waiting on the condition variable.
int SDL_CondBroadcast(SDL_cond *cond);
cond | the condition variable to signal |
Returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.
This function is available since SDL 3.0.0.
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);while (!condition) {
SDL_CondWait(cond, lock);
}
SDL_UnlockMutex(lock);
Thread C:
SDL_LockMutex(lock);
...
condition = SDL_TRUE;
...
SDL_CondBroadcast(cond);
SDL_UnlockMutex(lock);
.
.
SDL_DestroyCond(cond); SDL_DestroyMutex(lock);