From 8b627efe0f2baf7340aa88fb08cef3e9859f85a8 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 18 Jan 2015 23:06:00 +0100 Subject: [PATCH] added read timeout --- dialog.pl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dialog.pl b/dialog.pl index 381d1e4..d868ed9 100755 --- a/dialog.pl +++ b/dialog.pl @@ -47,8 +47,16 @@ die "can't connect" unless $sock; sub read_serial { my $len = shift; my $buffer; - $sock->read( $buffer, $len ); - warn "## read $len ",as_hex($buffer) if $debug; + eval { + local $SIG{ALRM} = sub { die "read timeout" }; + alarm 3; + + warn "## read_serial $len" if $debug; + $sock->read( $buffer, $len ); + warn "## read $len ",as_hex($buffer) if $debug; + }; + alarm 0; + warn "ERROR: $@" if $@; return $buffer; } -- 2.20.1