マルチスレッドのプログラミング

スレッドの切り離し

pthread_detach(3T)

pthread_detach(3T) は、detachstate 属性を PTHREAD_CREATE_JOINABLE に設定して生成されたスレッドの記憶領域を再利用するための、pthread_join(3T) に代わるもう 1 つの方法です。


プロトタイプ:
int	pthread_detach(thread_t tid);
#include <pthread.h>

pthread_t tid;
int ret;

/* スレッド tid を切り離す */
ret = pthread_detach(tid); 

pthread_detach() 関数は、スレッド tid のための記憶領域がそのスレッドの終了時に再利用できることを、この実装に対して示すために使われます。tid が終了していない場合、pthread_detach() によって、そのスレッドが終了することはありません。同じスレッドに対して複数の pthread_detach() 呼び出しが行われたときの効果は不定です。

戻り値

正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると、pthread_detach() は失敗し、対応する値を返します。


EINVAL

tid は、有効なスレッドではありません。


ESRCH

tid は、現在のプロセスの中の有効な切り離されていないスレッドではありません。