- my $now = now();
- my $exp = $EXPTIME;
- my $old = $now - $exp;
- my %new;
- while (my ($fd, $v) = each %$EXPMAP) {
- my ($idle_time, $ds_obj) = @$v;
- if ($idle_time < $old) {
- if (!$ds_obj->shutdn) {
- $new{$fd} = $v;
- }
- } else {
- $new{$fd} = $v;
- }
- }
- $EXPMAP = \%new;
- $exp_timer = scalar(keys %new) ? later(\&expire_old) : undef;
+ my $now = now();
+ my $exp = $EXPTIME;
+ my $old = $now - $exp;
+ my %new;
+ while (my ($fd, $idle_at) = each %$EXPMAP) {
+ if ($idle_at < $old) {
+ my $ds_obj = $DescriptorMap{$fd};
+ $new{$fd} = $idle_at if !$ds_obj->shutdn;
+ } else {
+ $new{$fd} = $idle_at;
+ }
+ }
+ $EXPMAP = \%new;
+ $exp_timer = scalar(keys %new) ? later(\&expire_old) : undef;