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

SDL_CreateMutex

新しいミューテックスを生成する

ヘッダ

SDL3/SDL_mutex.h

構文

SDL_Mutex * SDL_CreateMutex(void);

戻り値

(SDL_Mutex *) 初期化されたロック解除状態のミューテックスを戻す. 失敗のときNULLを戻す. SDL_GetError()で詳細を知ることができる.

詳細

新しく生成されたミューテックスは, 全てロック解除の状態から始まる.

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

SDLのミューテックスはリエントラント(再入可能)である.

バージョン

SDL 3.2.0以降

サンプルコード

SDL_Mutex *mutex;

mutex = SDL_CreateMutex();
if (!mutex) {
  SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "ミューテックスを生成できなかった\n");
  return 1;
}

if (SDL_TryLockMutex(mutex)) {
  /* ここでミューテックスがロックされている間の処理をする */
  SDL_UnlockMutex(mutex);
} else {
  SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "ミューテックスをロックできなかった\n");
}

SDL_DestroyMutex(mutex);

関連項目

SDL Wikiへのリンク

SDL_CreateMutex - SDL Wiki