Linuxシグナルとsleep

sleep, usleep, nanosleepまた、selectやpselectに空の集合を与えて
特定の時間を割り当てると処理を指定時間停止させることができる
しかし停止中にOSからなんらかのシグナルが入った場合、sleepやselectを抜けて処理を再開してしまう
これはどうやらOSの仕様の模様
対処方法としてはsigprocmaskやpselectなどでシグナルをブロックするか
nanosleepを使い、戻ってきた段階で設定されている残り時間を使って
再びsleepを再開する方法が挙げられる
ま、確かにいくらsleepしてるからと言ってOS落ちなくなったらコトだし、仕方ないか