int SDL_TryLockMutex(SDL_mutex* mutex)
mutex | ロックを試みるmutex |
int status;
SDL_mutex *mutex;
mutex = SDL_CreateMutex();
if (!mutex) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "mutexを生成できなかった¥n");
return;
}
status = SDL_TryLockMutex(mutex);
if (status == 0) {
SDL_Log("mutexをロックした¥n");
SDL_UnlockMutex(mutex);
} else if (status == SDL_MUTEX_TIMEDOUT) {
/* 今はmutexをロックできない */
} else {
SDL_LogError(stderr, "mutexをロックできなかった¥n");
}
SDL_DestroyMutex(mutex);
この関数はSDL_LockMutex()と似ているが, mutexが使えない場合, 即座にSDL_MUTEX_TIMEOUTを戻す.
これは資源を排他的にアクセスしたいが待つことができない場合に有用で, その場合は後で再び試みることになる.