スレッド生存確認方法

上記の方法を行うと別の問題が発生する。
本来終了して欲しくないスレッドが、なんらかの理由により終了した場合
それを知る方法が無い。
pthread_join()を行っていればスレッドが終了したのを知るのは可能だが、
デタッチ属性にした場合はpthread_join()が使用できない。


この場合はsignalを使用すれば良い。
シグナルを送信するにはpthread_kill()を使用する。


以下JMから引用。
pthread_kill(3)

pthread_kill はシグナル番号 signo のシグナルをスレッド thread に送信する。シグナルは kill(2) に書かれているように配送されハンドルされる。

kill(2)

sig に 0 を指定した場合、シグナルは送られないが、エラーのチェックは行われる。


つまりsigに0を指定してやればスレッドの生存確認ができる。