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(const 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
で指定された。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
pthread_attr_setdetachstate(),
pthread_attr_getdetachstate() |
Thread safety |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
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
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。