SDL_mutex* SDL_CreateMutex(void)
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はリエントラント(再入可能)である.