タグ

SIGALRMに関するakaneharaのブックマーク (2)

  • 時間のかかる処理を捕捉する ALRM シグナル - Qiita

    時間のかかる処理を実行したいんだけど、ある程度の時間が経過したらタイムアウトしたいという要望に応えるために ALRM シグナルというものがあります。 例えば シンプルなライブラリで通信したいんだけど、長時間かかる場合はタイムアウトして欲しい ウェブサーバなどでユーザのリクエスト内容を元に DNS 問い合わせをしたいんだけど、1秒(1000ミリ秒)以上かかったらタイムアウトさせたい バッチプログラムがいつまでも終わらなくて I/O でささっているっぽいんだけど、どこでささっているのか調査したい ささっている系調査は、プログラミング言語のデバッガや strace なども併用するとよいです n分おきに起動する cron プログラムなんだけど、処理するデータが多すぎてn分でおは終わらない場合には終了させないといけない(終了したら次の cron で起こされるプログラムが担当してくれるのでむしろそれで

    時間のかかる処理を捕捉する ALRM シグナル - Qiita
  • Perlでタイムアウト処理を実装する - HDEラボ

    プログラムを書く際に処理をタイムアウトさせたい場合というのはよくあると思います。 そんなときに便利なのが、alarmです。 今回は、Perlプログラムでalarmを使ってタイムアウト処理を実装したいと思います。 alarmは対象の処理が指定した時間(秒)たっても終了しない場合、SIGALRMシグナルを発生させます。 例として、ユーザからの入力を30秒でタイムアウトさせるプログラムを書いてみます。 #!/usr/bin/perl use strict; # タイムアウトするまでの時間(秒数) my $TIMEOUT = 30; print "What your name??: "; alarm($TIMEOUT); my $name = ; my $timeleft = alarm(0); print "Hello! $name"; alarmで囲った部分、ユーザからの入力待つ部分がタイムア

  • 1