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

スレッドの切り離し

pthread_detach(3C) は、detachstate 属性を PTHREAD_CREATE_JOINABLE に設定して生成されたスレッドの記憶領域を再利用するため、pthread_join(3C) の代わりに利用できます。

pthread_detach の構文

int pthread_detach(pthread_t tid);
#include <pthread.h>

pthread_t tid;
int ret;

/* detach thread tid */
ret = pthread_detach(tid); 

pthread_detach() 関数は、スレッド tid のための記憶領域がそのスレッドの終了時に再利用できることを、アプリケーションに対して示すために使われます。スレッドは、必要なくなった時点で切り離すべきです。tid が終了していない場合、pthread_detach() によって、そのスレッドが終了することはありません。

pthread_detach の戻り値

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


EINVAL

説明:

tid は切り離されたスレッドです。


ESRCH

説明:

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