… | |
… | |
26 | my $cv = AnyEvent->condvar; |
26 | my $cv = AnyEvent->condvar; |
27 | |
27 | |
28 | my $hdl; $hdl = new AnyEvent::Handle |
28 | my $hdl; $hdl = new AnyEvent::Handle |
29 | fh => \*STDIN, |
29 | fh => \*STDIN, |
30 | on_error => sub { |
30 | on_error => sub { |
|
|
31 | my ($hdl, $fatal, $msg) = @_; |
31 | warn "got error $_[2]\n"; |
32 | warn "got error $msg\n"; |
|
|
33 | $hdl->destroy; |
32 | $cv->send; |
34 | $cv->send; |
33 | ); |
35 | ); |
34 | |
36 | |
35 | # send some request line |
37 | # send some request line |
36 | $hdl->push_write ("getinfo\015\012"); |
38 | $hdl->push_write ("getinfo\015\012"); |
… | |
… | |
388 | $! = $errno; |
390 | $! = $errno; |
389 | $message ||= "$!"; |
391 | $message ||= "$!"; |
390 | |
392 | |
391 | if ($self->{on_error}) { |
393 | if ($self->{on_error}) { |
392 | $self->{on_error}($self, $fatal, $message); |
394 | $self->{on_error}($self, $fatal, $message); |
393 | $self->destroy; |
395 | $self->destroy if $fatal; |
394 | } elsif ($self->{fh}) { |
396 | } elsif ($self->{fh}) { |
395 | $self->destroy; |
397 | $self->destroy; |
396 | Carp::croak "AnyEvent::Handle uncaught error: $message"; |
398 | Carp::croak "AnyEvent::Handle uncaught error: $message"; |
397 | } |
399 | } |
398 | } |
400 | } |