pthread_mutexattr_setpshared() - プロセス共用 mutex 属性の設定

標準

標準/拡張機能 C/C++ 依存項目

z/OS UNIX
Single UNIX Specification、バージョン 3

両方

POSIX(ON)
OS/390 V2R7

形式

#define _OPEN_THREADS
#include <pthread.h>

int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr, int pshared);
SUSV3:
#define _UNIX03_THREADS
#include <pthread.h>

int pthread_mutexattr_setpshared(pthread_mutexattr_t *attr, int pshared);

機能説明

pthread_mutexattr_setpshared() 関数は、mutex 属性オブジェクト attr の属性 pshared を 設定します。

mutex 属性オブジェクトを使用すると、アプリケーションの mutex の特性を 管理することができます。これは作成時に mutex に使用される一連の値を定義します。mutex 属性オブジェクトを確立することにより、mutex ごとに特性を定義することなく、同じ一連の特性をとるいくつかの mutex を作成することができます。 pthread_mutexattr_setpshared() 関数で attr を使用することにより、mutex の process-shared 値を判別することができます。

属性 pshared の有効値は、次のとおりです。
PTHREAD_PROCESS_SHARED
複数プロセスで共用されるメモリーに mutex が割り振られている場合でも、mutex が割り振られているメモリーにアクセスできるスレッドによる mutex の操作を許可します。
PTHREAD_PROCESS_PRIVATE
mutex を開始したスレッドと同じプロセス内に作成されたスレッド だけが、mutex を操作できます。異なるプロセスのスレッドがこの mutex を 操作しようとすると、mutex を初期化するプロセスだけが実行されます。親プロセスによって新しいプロセスが作成されると、新しいプロセスは専用 mutex の別のコピーを受け取ります。この新しい mutex は、子プロセスのスレッド間でのみシリアライズされます。属性のデフォルト値は PTHREAD_PROCESS_PRIVATE です。

戻り値

正常に実行された場合、pthread_mutexattr_setpshared() は 0 を戻します。

正常に実行されなかった場合、pthread_mutexattr_setpshared() は -1 を戻して、errno を次のいずれかの 値に設定します。
エラー・コード
説明
EINVAL
attr または pshared に指定されている値は無効です。

Single UNIX Specification、バージョン 3 の特殊な動作: 正常に実行されなかった場合、pthread_mutexattr_setpshared() はエラーを示すエラー番号を戻します。

関連情報