bionic (3) pthread_detach.3.gz

Provided by: manpages-ja-dev_0.5.0.0.20161015+dfsg-1_all bug

名前

       pthread_detach - スレッドを切り離す (detach する)

書式

       #include <pthread.h>

       int pthread_detach(pthread_t thread);

       -pthread を付けてコンパイルとリンクを行う。

説明

       pthread_detach()  関数は  thread  で識別されるスレッドに  detached  (切り離された状態) という印を付ける。
       detached 状態のスレッドが終了すると、 別のスレッドが終了されたスレッドを join しなくても、 そのスレッドの
       リソースは自動的に解放されてシステムに戻される。

       すでに detach 状態のスレッドを detach しようとした場合に どのような結果となるかは規定されていない。

返り値

       成功すると、pthread_detach() は 0 を返す。 エラーの場合、エラー番号を返す。

エラー

       EINVAL thread が join 可能なスレッドではない。

       ESRCH  ID が thread のスレッドが見つからなかった。

準拠

       POSIX.1-2001.

注意

       いったんスレッドを  detached 状態にすると、 そのスレッドを pthread_join(3) で join したり、 もう一度 join
       可能にしたりすることはできない。

       pthread_attr_setdetachstate(3) を使って pthread_create(3) の attr  引き数の  detached  属性を設定すること
       で、 新しいスレッドを detached 状態で作成することができる。

       detached 属性は、スレッドが終了した際のシステムの動作を決めるだけである。 プロセスが exit(3) を使って終了
       した場合に、そのスレッドが終了され なくなるようなことはない (なお、メインスレッドが return した場合も  プ
       ロセスが exit(3) を使って終了した場合と全く同じである)。

       アプリケーションが作成した各スレッドについて、そのスレッドが使用して いるシステムリソースを解放できるよう
       に、pthread_join(3) か pthread_detach() のどちらかを呼び出すべきである (ただし、プロセスが 終了するときに
       は、全てのスレッドのリソースが解放される)。

       以下の文は、呼び出したスレッド自身を detach する。

           pthread_detach(pthread_self());

関連項目

       pthread_attr_setdetachstate(3),  pthread_cancel(3),  pthread_create(3), pthread_exit(3), pthread_join(3),
       pthreads(7)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。