… | |
… | |
285 | |
285 | |
286 | sub push_write { |
286 | sub push_write { |
287 | my $self = shift; |
287 | my $self = shift; |
288 | |
288 | |
289 | if ($self->{filter_w}) { |
289 | if ($self->{filter_w}) { |
290 | $self->{filter_w}->(\$_[0]); |
290 | $self->{filter_w}->($self, \$_[0]); |
291 | } else { |
291 | } else { |
292 | $self->{wbuf} .= $_[0]; |
292 | $self->{wbuf} .= $_[0]; |
293 | $self->_drain_wbuf; |
293 | $self->_drain_wbuf; |
294 | } |
294 | } |
295 | } |
295 | } |
… | |
… | |
575 | |
575 | |
576 | =item $handle->stop_read |
576 | =item $handle->stop_read |
577 | |
577 | |
578 | =item $handle->start_read |
578 | =item $handle->start_read |
579 | |
579 | |
580 | In rare cases you actually do not want to read anything form the |
580 | In rare cases you actually do not want to read anything from the |
581 | socket. In this case you can call C<stop_read>. Neither C<on_read> no |
581 | socket. In this case you can call C<stop_read>. Neither C<on_read> no |
582 | any queued callbacks will be executed then. To start readign again, call |
582 | any queued callbacks will be executed then. To start readign again, call |
583 | C<start_read>. |
583 | C<start_read>. |
584 | |
584 | |
585 | =cut |
585 | =cut |
… | |
… | |
600 | my $rbuf = $self->{filter_r} ? \my $buf : \$self->{rbuf}; |
600 | my $rbuf = $self->{filter_r} ? \my $buf : \$self->{rbuf}; |
601 | my $len = sysread $self->{fh}, $$rbuf, $self->{read_size} || 8192, length $$rbuf; |
601 | my $len = sysread $self->{fh}, $$rbuf, $self->{read_size} || 8192, length $$rbuf; |
602 | |
602 | |
603 | if ($len > 0) { |
603 | if ($len > 0) { |
604 | $self->{filter_r} |
604 | $self->{filter_r} |
605 | ? $self->{filter_r}->($rbuf) |
605 | ? $self->{filter_r}->($self, $rbuf) |
606 | : $self->_drain_rbuf; |
606 | : $self->_drain_rbuf; |
607 | |
607 | |
608 | } elsif (defined $len) { |
608 | } elsif (defined $len) { |
609 | delete $self->{rw}; |
609 | delete $self->{rw}; |
610 | $self->{eof} = 1; |
610 | $self->{eof} = 1; |