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 | }; |