Commit 9b3875693d36930ded9bbc75586b7aaa06db7758
1 parent
d4b1357d
Exists in
master
Se perde a conexão com a porta USB, sai do programa.
git-svn-id: http://svn.softwarepublico.gov.br/svn/sistemadeatendimento/sistema/trunk@35 63db2ce5-8a6c-0410-abb9-a418dd412890
Showing
1 changed file
with
6 additions
and
2 deletions
Show diff stats
Fila-Opiniometro/lib/Fila/Opiniometro/Model/Device.pm
@@ -114,12 +114,16 @@ sub _check_wb { | @@ -114,12 +114,16 @@ sub _check_wb { | ||
114 | return if $write_watcher || !$self->write_buffer; | 114 | return if $write_watcher || !$self->write_buffer; |
115 | 115 | ||
116 | $write_watcher = EV::io $self->fh, EV::WRITE, sub { | 116 | $write_watcher = EV::io $self->fh, EV::WRITE, sub { |
117 | - use bytes; | 117 | + use bytes; |
118 | my $buf = $self->write_buffer; | 118 | my $buf = $self->write_buffer; |
119 | my $len = length $buf; | 119 | my $len = length $buf; |
120 | my $wrt = $self->fh->syswrite($buf, $len); | 120 | my $wrt = $self->fh->syswrite($buf, $len); |
121 | + unless (defined $wrt) { | ||
122 | + EV::unloop(EV::UNLOOP_ALL); | ||
123 | + return; | ||
124 | + } | ||
121 | my $wrote = substr($buf,0,$wrt,''); | 125 | my $wrote = substr($buf,0,$wrt,''); |
122 | - warn 'Wrote '.$wrt.' bytes ('.$wrote.')'; | 126 | + warn 'Wrote '.$wrt.' bytes ('.$wrote.') ['.$_.']'; |
123 | $self->write_buffer($buf); | 127 | $self->write_buffer($buf); |
124 | $write_watcher = undef unless $buf; | 128 | $write_watcher = undef unless $buf; |
125 | }; | 129 | }; |