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
[[解決]]
ほんとうにありがとうございました。
無事解決できました。

[上に] [前に] [次に]