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

mutex の堅牢度属性の設定

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

pthread_mutexattr_setrobust_np の構文

#include <pthread.h> 
int pthread_mutexattr_setrobust_np(pthread_mutexattr_t *attr, int *robustness);

注 –

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

Solaris 10 および以前のリリースでは、PTHREAD_MUTEX_ROBUST_NP 属性は、自身も PTHREAD_PRIO_INHERIT プロトコル属性でマークされている mutex にのみ適用できます。この制限は、それ以降の Solaris リリースでは解消されています。


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

robustness は、mutex の所有者が (通常はプロセスが異常終了したために) mutex をロック解除しないで終了した場合の動作を定義します。pthread.h に定義可能な robustness の値は、PTHREAD_MUTEX_ROBUST_NP または PTHREAD_MUTEX_STALLED_NP です。デフォルト値は、PTHREAD_MUTEX_STALLED_NP です。

pthread_mutexattr_setrobust_np の戻り値

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

次の条件が検出されると、pthread_mutexattr_setrobust_np() は失敗する可能性があります。


EINVAL

説明:

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