Provided by: manpages-ja-dev_0.5.0.0.20221215+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 のスレッドが見つからなかった。

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌─────────────────┬───────────────┬─────────┐
       │インターフェース属性      │
       ├─────────────────┼───────────────┼─────────┤
       │pthread_detach() │ Thread safety │ MT-Safe │
       └─────────────────┴───────────────┴─────────┘

準拠

       POSIX.1-2001, POSIX.1-2008.

注意

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

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

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

       Either  pthread_join(3)   or  pthread_detach()   should  be called for each thread that an
       application creates, so that system resources for the thread can be released.   (But  note
       that the resources of any threads for which one of these actions has not been done will be
       freed when the process terminates.)

       以下の文は、呼び出したスレッド自身を 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 プロジェクトのリリース 5.10 の一部である。プロジェクトの
       説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。