void SDL_BroadcastCondition(SDL_Condition *cond);
| SDL_Condition * | cond | 通知する条件変数 |
// 注意: このサンプルコードはSDL2 Wikiから名称のみを更新して移行したものである
bool condition = false;
SDL_Mutex *lock;
SDL_Condition *cond;
lock = SDL_CreateMutex();
cond = SDL_CreateCondition();
Thread_A:
SDL_LockMutex(lock);
while (!condition) {
SDL_WaitCondition(cond, lock);
}
SDL_UnlockMutex(lock);
Thread_B:
SDL_LockMutex(lock);
while (!condition) {
SDL_WaitCondition(cond, lock);
}
SDL_UnlockMutex(lock);
Thread_C:
SDL_LockMutex(lock);
/* ... */
condition = true;
/* ... */
SDL_BroadcastCondition(cond);
SDL_UnlockMutex(lock);
SDL_DestroyCondition(cond);
SDL_DestroyMutex(lock);