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.79 by root, Sun Jul 27 08:37:56 2008 UTC vs.
Revision 1.80 by root, Sun Jul 27 08:43:32 2008 UTC

79 79
80Set the callback to be called when an end-of-file condition is detected, 80Set the callback to be called when an end-of-file condition is detected,
81i.e. in the case of a socket, when the other side has closed the 81i.e. in the case of a socket, when the other side has closed the
82connection cleanly. 82connection cleanly.
83 83
84While not mandatory, it is highly recommended to set an eof callback, 84While not mandatory, it is I<highly> recommended to set an eof callback,
85otherwise you might end up with a closed socket while you are still 85otherwise you might end up with a closed socket while you are still
86waiting for data. 86waiting for data.
87
88If an EOF condition has been detected but no C<on_eof> callback has been
89set, then a fatal error will be raised with C<$!> set to <0>.
87 90
88=item on_error => $cb->($handle, $fatal) 91=item on_error => $cb->($handle, $fatal)
89 92
90This is the error callback, which is called when, well, some error 93This is the error callback, which is called when, well, some error
91occured, such as not being able to resolve the hostname, failure to 94occured, such as not being able to resolve the hostname, failure to
766 delete $self->{_rw}; 769 delete $self->{_rw};
767 last; 770 last;
768 } 771 }
769 } 772 }
770 773
774 if ($self->{_eof}) {
775 if ($self->{on_eof}) {
771 $self->{on_eof}($self) 776 $self->{on_eof}($self)
772 if $self->{_eof} && $self->{on_eof}; 777 } else {
778 $self->_error (0, 1);
779 }
780 }
773 781
774 # may need to restart read watcher 782 # may need to restart read watcher
775 unless ($self->{_rw}) { 783 unless ($self->{_rw}) {
776 $self->start_read 784 $self->start_read
777 if $self->{on_read} || @{ $self->{_queue} }; 785 if $self->{on_read} || @{ $self->{_queue} };

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines