スレッド生存確認方法
上記の方法を行うと別の問題が発生する。
本来終了して欲しくないスレッドが、なんらかの理由により終了した場合
それを知る方法が無い。
pthread_join()を行っていればスレッドが終了したのを知るのは可能だが、
デタッチ属性にした場合はpthread_join()が使用できない。
この場合はsignalを使用すれば良い。
シグナルを送信するにはpthread_kill()を使用する。
以下JMから引用。
pthread_kill(3)
pthread_kill はシグナル番号 signo のシグナルをスレッド thread に送信する。シグナルは kill(2) に書かれているように配送されハンドルされる。
kill(2)
sig に 0 を指定した場合、シグナルは送られないが、エラーのチェックは行われる。
つまりsigに0を指定してやればスレッドの生存確認ができる。