[解決済み] Perlでタイムアウトを行う方法?
2022-02-19 12:55:34
質問
Perlで特定のコード片の実行時間の上限を設定するために、次のパターンをよく使います。
my $TIMEOUT_IN_SECONDS = 5;
eval {
local $SIG{ALRM} = sub { die "alarm\n" };
alarm($TIMEOUT_IN_SECONDS);
# do stuff that might timeout.
alarm(0);
};
if ($@) {
# handle timeout condition.
}
私の質問です。
- このやり方は正しいのでしょうか?
- 実行時間が$TIMEOUT_IN_SECONDSを超えるような状況はありますか、それとも上記の方法は弾丸のように安全ですか?
どのように解決するのですか?
をご覧ください。 Sys::SigAction . 私自身は使ったことがないのですが、このソフトには 熱いレビュー .
注意しなければならないのは、タイムアウトしそうなもの(quot; stuff that might timeout")が
sleep
または
alarm
そのものです。 また、エラー処理のコードでは、タイムアウト以外のエラーも想定しているのでしょう。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン