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)