EN JA
PTHREAD_CONDATTR(3)
PTHREAD_CONDATTR(3) FreeBSD Library Functions Manual PTHREAD_CONDATTR(3)

名称

pthread_condattr_init, pthread_condattr_destroy, pthread_condattr_getclock, pthread_condattr_setclock, pthread_condattr_getpshared, pthread_condattr_setpshared条件属性オペレーション (操作)

ライブラリ

POSIX Threads Library (libpthread, -lpthread)

書式

#include < pthread.h>

int
pthread_condattr_init( pthread_condattr_t *attr);

int
pthread_condattr_destroy( pthread_condattr_t *attr);

int
pthread_condattr_getclock( pthread_condattr_t * restrict attr, clock_t * restrict clock_id);

int
pthread_condattr_setclock( pthread_condattr_t *attr, clock_t clock_id);

int
pthread_condattr_getpshared( pthread_condattr_t * restrict attr, int * restrict pshared);

int
pthread_condattr_setpshared( pthread_condattr_t *attr, int pshared);

解説

条件属性オブジェクトは、 pthread_cond_init() へのパラメータを指定するために使用されます。

pthread_condattr_init() 関数は、デフォルト属性で条件属性オブジェクトを初期化します。

pthread_condattr_destroy() 関数は、条件属性オブジェクトを破壊します。

pthread_condattr_getclock() 関数は、 attr のクロック属性の値を clock_id によって指されたメモリ領域に置きます。 pthread_condattr_setclock() 関数は、 attr のクロック属性を clock_id で指定された値に設定します。クロック属性は、 pthread_cond_timedwait(3)abstime の解釈に影響し、 CLOCK_REALTIME (デフォルト) または CLOCK_MONOTONIC に設定されます。

pthread_condattr_getpshared() 関数は、 attr のプロセス共用属性の値を pshared よって指されたメモリ領域に置きます。 pthread_condattr_setpshared() 関数は、 attr のプロセス共用属性を pshared で指定された値に設定します。引数 pshared は、次にの値の 1 つを持っています:

PTHREAD_PROCESS_PRIVATE
アタッチされている条件変数は、オブジェクトを作成したものと同じプロセスのスレッドによってアクセスされるだけです。
PTHREAD_PROCESS_SHARED
アタッチされている条件変数は、オブジェクトを作成したもの以外のプロセスのスレッドによってアクセスされます。

戻り値

成功すれば、これらの関数は 0 を返します。そうでなければ、エラーを示すためにエラー番号を返します。

エラー

pthread_condattr_init() 関数は、次の場合に失敗します:
[ ENOMEM]
メモリ不足。

pthread_condattr_destroy() 関数は、次の場合に失敗します:

[ EINVAL]
attr は、無効の値です。

pthread_condattr_setclock() 関数は、次の場合に失敗します:

[ EINVAL]
clock_id で指定された値が、許された値の 1 つではありません。

pthread_condattr_setpshared() 関数は、次の場合に失敗します:

[ EINVAL]
pshared で指定された値が、許された値の 1 つではありません。

規格

pthread_condattr_init() と pthread_condattr_destroy() 関数は、 ISO/IEC 9945-1:1996 (“POSIX.1”) に適合しています。

バグ

条件変数の実装は、プロセス共用属性が無視されるので、完全には IEEE Std 1003.2 (“POSIX.2”) に適合していません。 pthread_condattr_setpshared() への呼び出しに PTHREAD_PROCESSES_PRIVATE 以外の値が指定されるなら、 EINVAL を返します。
May 9, 2010 FreeBSD