ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent/Handle.pm
(Generate patch)

Comparing AnyEvent/lib/AnyEvent/Handle.pm (file contents):
Revision 1.150 by root, Thu Jul 16 04:16:25 2009 UTC vs.
Revision 1.154 by root, Sat Jul 18 05:19:09 2009 UTC

1package AnyEvent::Handle; 1package AnyEvent::Handle;
2 2
3no warnings;
4use strict qw(subs vars);
5
6use AnyEvent ();
7use AnyEvent::Util qw(WSAEWOULDBLOCK);
8use Scalar::Util (); 3use Scalar::Util ();
9use Carp (); 4use Carp ();
10use Fcntl ();
11use Errno qw(EAGAIN EINTR); 5use Errno qw(EAGAIN EINTR);
12 6
7use AnyEvent (); BEGIN { AnyEvent::common_sense }
8use AnyEvent::Util qw(WSAEWOULDBLOCK);
9
13=head1 NAME 10=head1 NAME
14 11
15AnyEvent::Handle - non-blocking I/O on file handles via AnyEvent 12AnyEvent::Handle - non-blocking I/O on file handles via AnyEvent
16 13
17=cut 14=cut
18 15
19our $VERSION = 4.82; 16our $VERSION = 4.85;
20 17
21=head1 SYNOPSIS 18=head1 SYNOPSIS
22 19
23 use AnyEvent; 20 use AnyEvent;
24 use AnyEvent::Handle; 21 use AnyEvent::Handle;
26 my $cv = AnyEvent->condvar; 23 my $cv = AnyEvent->condvar;
27 24
28 my $hdl; $hdl = new AnyEvent::Handle 25 my $hdl; $hdl = new AnyEvent::Handle
29 fh => \*STDIN, 26 fh => \*STDIN,
30 on_error => sub { 27 on_error => sub {
28 my ($hdl, $fatal, $msg) = @_;
31 warn "got error $_[2]\n"; 29 warn "got error $msg\n";
30 $hdl->destroy;
32 $cv->send; 31 $cv->send;
33 ); 32 );
34 33
35 # send some request line 34 # send some request line
36 $hdl->push_write ("getinfo\015\012"); 35 $hdl->push_write ("getinfo\015\012");
388 $! = $errno; 387 $! = $errno;
389 $message ||= "$!"; 388 $message ||= "$!";
390 389
391 if ($self->{on_error}) { 390 if ($self->{on_error}) {
392 $self->{on_error}($self, $fatal, $message); 391 $self->{on_error}($self, $fatal, $message);
393 $self->destroy; 392 $self->destroy if $fatal;
394 } elsif ($self->{fh}) { 393 } elsif ($self->{fh}) {
395 $self->destroy; 394 $self->destroy;
396 Carp::croak "AnyEvent::Handle uncaught error: $message"; 395 Carp::croak "AnyEvent::Handle uncaught error: $message";
397 } 396 }
398} 397}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines