Perlで処理をタイムアウトするには?
[上に]
[前に]
[次に]
匿名希望
1999/05/13(木) 23:55:51
SSIを使ってアクセスしてきた人のクライアントIPを表示するプログラムを作ったのですが、出来るだけ数字ではなくNameで表示したかったのでソケットを使いIPからNameを引いてるんですが、アクセスしてきたクライアントのIPに対してNameが設定されてないとき、その処理にとても時間がかかってしまいます。そこで、一定時間、Nameを調べて結果が出ないときはIP→Nameの処理を飛ばすようにしたいのですが・・・。
B-Cus
1999/05/14(金) 00:51:25
$SIG{ALRM}=\&alarm_handler;
alarm(秒数);
逆引き処理
alarm(0);
exit;
sub alarm_handler {
後始末。
exit;
}
とすれば、指定秒数後 SIGALRM シグナルが飛んできて alarm_handler に
処理が渡ります。そこで exit すればよいでしょう。
匿名希望
1999/05/15(土) 06:54:46
[[解決]]
ほんとうにありがとうございました。
無事解決できました。
[上に]
[前に]
[次に]