in reply to Re: alarm not working
in thread alarm not working
Blocking does not resolve the problem. Here is the code, I am still facing the issue the program is not killed after alarm but sits back waiting and waiting.
my $socket_resp = IO::Socket::INET->new(LocalPort => $response_por +t, Proto => 'udp', Blocking => 1, Timeout => undef); print "FW Machine: Waiting for Command Response On Port $response_ +port\n"; eval { local $SIG{ALRM} = sub { die "Timed Out"; }; alarm 10; while (1) { my $recieved_data; $socket_resp->recv($recieved_data, 1024); alarm 10; my $peer_address = $socket_resp->peerhost(); my $peer_port = $socket_resp->peerport(); if ($peer_address eq $send_ip_address) { my $desti = GetIP(); chomp($recieved_data); print "$peer_address:$peer_port > $desti:$response_por +t => $recieved_data\n"; if ($recieved_data =~ m/^done/i) { last; } } } alarm 0; }; alarm 0; if ($@ =~ /Timed Out/i) { print "Timed-Out waiting for infinite loop to finish\n"; } $socket_resp->close();
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: alarm not working
by aitap (Curate) on Jul 13, 2012 at 17:17 UTC |
In Section
Seekers of Perl Wisdom