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

pthread_mutexattr_setrobust_np(3T)

pthread_mutexattr_setrobust_np(3T) は、mutex 属性オブジェクトの堅牢度属性を設定します。


#include <pthread.h>

int pthread_mutexattr_setrobust_np(pthread_mutexatt_t *attr, int *robustness);

注 -

pthread_mutexattr_setrobust_np() が適用されるのは、シンボル _POSIX_THREAD_PRIO_INHERIT が定義されている場合だけです。


attr は、先の pthread_mutexattr_init() の呼び出しによって作成された mutex 属性オブジェクトを指します。

robustness は、mutex の所有者が終了した場合の動作を定義します。pthread.h に定義可能な robustness の値は、PTHREAD_MUTEX_ROBUST_NP または PTHREAD_MUTEX_STALLED_NP です。デフォルト値は、PTHREAD_MUTEX_STALLED_NP です。

戻り値

pthread_mutexattr_setrobust_np() は、正常終了すると 0 を返します。それ以外の戻り値は、エラーが発生したことを示しています。

次の条件のいずれかが検出されると、pthread_mutexattr_setrobust_np() は失敗し、対応する値を返します。


ENOSYS

オプション _POSIX_THREAD_PRIO__INHERIT が定義されていないか、あるいはこの実装が pthread_mutexattr_setrobust_np() 関数をサポートしていません。


ENOTSUP

robustness で指定された値はサポートされていません。

次の条件が検出されると、pthread_mutexattr_setrobust_np() は失敗します。


EINVAL

attr または robustness で指定された値は無効です。