マルチスレッドのプログラミング

pthread_mutex_trylock の戻り値

pthread_mutex_trylock() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると、この関数は失敗し、対応する値を返します。


EBUSY

説明:

mutex が指している mutex はすでにロックされているため、獲得できません。


EAGAIN

説明:

mutex に繰り返し行われたロック回数が最大数を超えるため、mutex を所有できません。

シンボル _POSIX_THREAD_PRIO_INHERIT が定義されていて、mutex がプロトコル属性値 PTHREAD_PRIO_INHERIT で初期化されています。さらに、pthread_mutexattr_setrobust_np() の引数 robustnessPTHREAD_MUTEX_ROBUST_NP の場合、この関数は失敗し、次のいずれかの値を返します。


EOWNERDEAD

説明:

pthread_mutex_lock の戻り値」の説明を参照してください。


ENOTRECOVERABLE

説明:

pthread_mutex_lock の戻り値」の説明を参照してください。


ENOMEM

説明:

同時に保持される mutex の上限数を超えています。