… | |
… | |
41 | sub wake_next { |
41 | sub wake_next { |
42 | my $self = shift; |
42 | my $self = shift; |
43 | |
43 | |
44 | $self->sort; |
44 | $self->sort; |
45 | |
45 | |
46 | while($self->{slots} && @{$self->{wait}}) { |
46 | while($self->{slots} > 0 && @{$self->{wait}}) { |
47 | my $transfer = shift @{$self->{wait}}; |
47 | my $transfer = shift @{$self->{wait}}; |
48 | if ($transfer) { |
48 | if ($transfer) { |
49 | $self->{lastspb} = $transfer->{spb}; |
49 | $self->{lastspb} = $transfer->{spb}; |
50 | $self->{avgspb} ||= $transfer->{spb}; |
50 | $self->{avgspb} ||= $transfer->{spb}; |
51 | $self->{avgspb} = $self->{avgspb} * 0.95 + $transfer->{spb} * 0.05; |
51 | $self->{avgspb} = $self->{avgspb} * 0.95 + $transfer->{spb} * 0.05; |