以下のperlのスクリプトでalarmがきかなくて困っています。

サーバーのレスポンスがない場合10秒でタイムアウトさせる処理をおこなっていますが、アラームがききません。
通信を行うという処理でなければ問題なくアラームがきくのですが、なぜか通信の処理となるときかなくなります。
local $SIG{ALRM} = sub { die "timeout" };を記述しなけば、「アラームクロック」と出力されてスクリプトは止まります。
eval {
local $SIG{ALRM} = sub { die "timeout" };
alarm 10;
# twitterAPIに接続
$twitter->user_timeline();
};
if ($@) {
if ($@ =~ /^timeout/) {
#タイムアウト時処理
}
else {
#その他エラー時処理
}
}

なんとかタイムアウトさせたいのですが、何か解決法わかればご教示ください。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/06/24 19:44:58
  • 終了:2011/07/01 19:45:02

回答(0件)

回答はまだありません

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません