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

SDL_UnlockMutex

mutexのロックを解除する

構文

int SDL_UnlockMutex(SDL_mutex* mutex)

引数

mutexロック解除するmutex

戻り値

成功のとき0, 失敗のとき負の数のエラーコードを戻す. SDL_GetError()で詳細を知ることができる.

サンプルコード

SDL_mutex *mutex;

mutex = SDL_CreateMutex();
if (!mutex) {
    fprintf(stderr, "mutexを生成できなかった\n");
    return;
}

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

SDL_DestroyMutex(mutex);

詳細

ロック中のスレッドで再びロックすることは可能である. 他のスレッドで利用可能にするには, 同じ回数だけアンロックする必要がある(これは「再入可能mutex」と呼ばれる).

現在のスレッドではないスレッドでロックしたmutexを, 現在のスレッドでアンロックしてはならない. それは環境に依存した定義されない振る舞いを引き起こすことがある.

ロックされていないmutexをアンロックしてはならない.

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_CreateMutex
SDL_DestroyMutex
SDL_LockMutex
SDL_TryLockMutex

SDL Wikiへのリンク

SDL_UnlockMutex - SDL Wiki