AnyEvent-Handle-Throttle

 view release on metacpan or  search on metacpan

lib/AnyEvent/Handle/Throttle.pm  view on Meta::CPAN

53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
    my $reset = sub {
        $self->{read_size}      = $self->{download_limit};
        $self->{write_size}     = $self->{upload_limit} || 8 * 1024;
        $self->{upload_speed}   = $self->{_upload_speed};
        $self->{download_speed} = $self->{_download_speed};
        $self->{_upload_speed}  = $self->{_download_speed} = 0;
    };
    $self->{_period} ||= 1;
    $self->{_reset} = AE::timer(0, $self->{_period}, $reset);
    $reset->();
    $self->SUPER::_start(@_);
}
 
sub start_read {
    my ($self) = @_;
    unless ($self->{_rw} || $self->{_eof} || !$self->{fh}) {
        Scalar::Util::weaken $self;
        $self->{_rw} = AE::io $self->{fh}, 0, sub {
            my ($read) = sort grep {defined} $global_read_size,
                $self->{read_size};
            my ($period) = sort grep {defined} $global_period,



( run in 0.355 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )