PTHREAD_DETACH(3) |
FreeBSD Library Functions Manual |
PTHREAD_DETACH(3) |
名前
pthread_detach -実行中のスレッドをデタッチ状態にする
書式
#include <pthread.h>
int pthread_detach(pthread_t
th
);
説明
pthread_detach はスレッド
th をデタッチ状態にする。これは
th が終了したときに、
th によって消費されていたメモリ資源を即座に解放することを保証する。しかしながら、これによって他のスレッドは
pthread_join を用いて
th の終了に同期することができなくなる。
スレッドは
pthread_create(3) の属性に
detachstate を用いることによって、最初からデタッチ状態で生成することができる。これに対し、
pthread_detach は合流可能状態として生成され、後にデタッチ状態にする必要の出てきたスレッドに適用される。
pthread_detach が完了した後、
th に対して
pthread_join を実行しても失敗する。もし
pthread_detach が呼ばれた時に別のスレッドがスレッド
th の終了を待っている (joining) ならば、
pthread_detach は何もせず、
th を合流可能状態のままにしておく。
返り値
成功すると 0 が返る。エラーの場合は、非 0 のエラーコードが返る。
エラー
-
ESRCH
-
th で指定したスレッドが見つからない。
-
EINVAL
-
スレッド
th は既にデタッチ状態にある。
著者
Xavier Leroy <Xavier.Leroy@inria.fr>
関連項目
pthread_create(3),
pthread_join(3),
pthread_attr_setdetachstate(3)