pthread_attr_setdetachstate, pthread_attr_getdetachstate -
スレッド属性オブジェクトの
detach state
属性の設定/取得を行う
#include <pthread.h>
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);
-pthread でコンパイルしてリンクする。
pthread_attr_setdetachstate() 関数は、
attr
が参照するスレッド属性オブジェクトの
detach state 属性を
detachstate
で指定された値に設定する。
detach state
属性により、スレッド属性オブジェクト
attr を使って
作成されるスレッドが、
join
可能な状態で作成されるか、
detached (切り離された)
状態で作成されるかが決定される。
detachstate
には以下の値を指定できる。
- PTHREAD_CREATE_DETACHED
- attr
を使って作成されるスレッドは
detached
状態で作成される。
- PTHREAD_CREATE_JOINABLE
- attr
を使って作成されるスレッドは
join
可能な状態で作成される。
新規に初期化されたスレッド属性オブジェクトの
detach state 属性の
デフォルト設定は
PTHREAD_CREATE_JOINABLE である。
pthread_attr_getdetachstate() は、
スレッド属性オブジェクト
attr の detach state 属性を
detachstate
が指すバッファに入れて返す。
返り値¶
成功すると、これらの関数は
0 を返す。
エラーの場合、0
以外のエラー番号を返す。
エラー¶
pthread_attr_setdetachstate()
は以下のエラーで失敗する場合がある。
- EINVAL
- 無効な値が detachstate
で指定された。
マルチスレッディング (pthreads(7) 参照)¶
関数
pthread_attr_setdetachstate() と
pthread_attr_getdetachstate()
はスレッドセーフである。
POSIX.1-2001.
detached 状態のスレッド、join
可能状態のスレッドの詳細については、
pthread_create(3) を参照。
join
可能状態で作成されたスレッドは、最終的に
pthread_join(3) を使って join
するか、
pthread_detach(3)
を使って切り離すか、
のどちらかを行うべきである。
detached
状態で作成されたスレッドのスレッド
ID を指定して、
pthread_detach(3)
や
pthread_join(3)
を後から呼び出すのは
エラーである。
pthread_attr_init(3) を参照。
関連項目¶
pthread_attr_init(3),
pthread_create(3),
pthread_detach(3),
pthread_join(3),
pthreads(7)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。