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

# SDL_TryLockMutex

ブロックせずにmutexのロックを試みる

## 構文

`int SDL_TryLockMutex(SDL_mutex* mutex)`

## 引数

mutex | ロックを試みるmutex

## 戻り値

0, SDL_MUTEX_TIMEDOUT, または-1を戻す. SDL_GetError()で詳細を知ることができる.

## サンプルコード

``

    int status;
    SDL_mutex *mutex;

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

    status = SDL_TryLockMutex(mutex);

    if (status == 0) {
        printf("mutexをロックした\n");
        SDL_UnlockMutex(mutex);
    } else if (status == SDL_MUTEX_TIMEDOUT) {
        /* 今はmutexをロックできない */
    } else {
        fprintf(stderr, "mutexをロックできなかった\n");
    }

    SDL_DestroyMutex(mutex);

## 詳細

この関数はSDL_LockMutex()と似ているが, mutexが使えない場合, 即座にSDL_MUTEX_TIMEOUTを戻す.

これは資源を排他的にアクセスしたいが待つことができない場合に有用で, その場合は後で再び試みることになる.

## バージョン

SDL 2.0.0以降

## 関連項目(関数)

SDL_CreateMutex
SDL_DestroyMutex
SDL_LockMutex
SDL_UnlockMutex

## SDL Wikiへのリンク

SDL_TryLockMutex - SDL Wiki