int pthread_detach(pthread_t thread);
threadで指定したスレッドが終了した時、threadが使っていた資源を回収して再利用します。threadが終了していなくても、強制的にスレッドを終了させる事はありません。スレッドが終了した時に資源を再利用します。
同じスレッドに対してpthread_detach()を重複して呼び出した時の動作は未定義です。
pthread_detach()が成功した時には0を返します。エラーの時はエラーに応じた値を返します。
1/18 15:35修正
間違って理解していたので、全面的に書き直し。
普通のやつらの下を行け -- バッドノウハウ専門家
これ、本当ですか? (スコア:1)
pthread_create()すると、pthread_join()するまで、スレッド特有の領域(スタックとか、戻り値とか)が残ります。
(Linuxだと、ゾンビ状態になっているはず)
で、pthread_join()で、スレッドの終了を待つ必要が無い場合は、
pthread_detach()を使うと、スレッド終了と同時に領域を解放してくれる。
こういうもんだと思っているんですけど。
# だれか、もっと詳しい人いないかな?
Re:これ、本当ですか? (スコア:1)
これから全面的に書き直します。嘘を書いてしまってどうもすみませんでした。