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

SDL_CreateMutex

新しいmutexを生成する

構文

SDL_mutex* SDL_CreateMutex(void)

戻り値

初期化されアンロックされたmutexを戻す. 失敗のときNULLを戻す. SDL_GetError()で詳細を知ることができる.

サンプルコード

SDL_mutex *mutex;

mutex = SDL_CreateMutex();
if (!mutex) {
    SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "mutexを生成できなかった¥n");
    return;
}

if (SDL_LockMutex(mutex) == 0) {
    /* ここでmutexがロックされている間の処理をする */
    SDL_UnlockMutex(mutex);
} else {
    SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "mutexをロックできなかった¥n");
}

SDL_DestroyMutex(mutex);

詳細

新しく生成されたmutexは, 全てアンロックの状態から始まる.

他のスレッドで既にロックされている間はSDL_LockMutex()から戻らない. ブロックせずにロックを試みたい場合はSDL_TryLockMutex()を使うこと.

SDLのmutexはリエントラント(再入可能)である.

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_DestroyMutex
SDL_LockMutex
SDL_TryLockMutex
SDL_UnlockMutex

SDL Wikiへのリンク

SDL_CreateMutex - SDL Wiki