SDL_Mutex * SDL_CreateMutex(void);
新しく生成されたミューテックスは, 全てロック解除の状態から始まる.
他のスレッドで既にロックされている間はSDL_LockMutex()から戻らない. ブロックせずにロックを試みたい場合はSDL_TryLockMutex()を使うこと.
SDLのミューテックスはリエントラント(再入可能)である.
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);