>>943
1つの実装方法として、タイマー割込み発生用のサーバスレッドを自作し、
そのスレッドから、各スレッドのシグナル処理関数(シグナルハンドラ)をCALLする、
という方法があります。スレッドを区別するため、スレッドユニークな何らかの値
(スレッド固有のデータ領域を示すポインタなど)を引数として追加しておくといいでしょう。

簡単に言えば、シグナル処理をOSではなく、自作のスレッドにやらせる、ということですね。

ただし、排他処理には十分に注意する必要があるなど、かなり複雑な実装となりますので、
スレッドのタイムアウト処理のシンプルな実装方法としては、>>944 の方法が
推奨されると思われます。

C言語の話からは微妙に外れますので、マルチスレッドプログラミング相談室スレの方が、
いろいろな意見がもらえるかも?