09/04/02 01:35:18
タイムアウト処理に関する質問です。
このページを参考にしますと
URLリンク(www.futomi.com)
の最初のスクリプト例
$SIG{ALRM} = \&timeout; # ALRM シグナルをキャッチした場合の処理を定義
alarm 10; # タイマーを 10 秒にセット
・・・
・・・
#タイマーで時間を監視したい処理
・・・
・・・
alarm 0; # タイマーをキャンセル
sub timeout {
#タイムアウトした際に実行する処理
}
上記例において、
#タイマーで時間を監視したい処理
sleep(100);
#タイムアウトした際に実行する処理
print 'timeout';
とすると、タイムアウトが一旦発生するとタイマー監視していた処理(sleep)の途中で「timeout」が一回表示されてプログラムが終わってしまうわけですが、
終わらせずに監視を続け、10秒おきにシグナルが発生するようにしたいのですがどうすればいいのでしょうか?
つまりsleep100秒している間に、timeoutという文字を10秒おきに一回ずつ計10個printするようにしたいのですが。
そういうスクリプトを作って見せてもらえないでしょうか。