Commit 9b3875693d36930ded9bbc75586b7aaa06db7758

Authored by daniel@ruoso.com
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
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 };