目次 - SDL 3.0 API(機能別) - 同期プリミティブ - SDL_BroadcastCondition

SDL_BroadcastCondition

条件変数を待つ全てのスレッドを再開する

ヘッダ

SDL3/SDL_mutex.h

構文

void SDL_BroadcastCondition(SDL_Condition *cond);

引数

SDL_Condition *cond通知する条件変数

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL 3.2.0以降

サンプルコード

// 注意: このサンプルコードは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);

関連項目

SDL Wikiへのリンク

SDL_BroadcastCondition - SDL Wiki