alter the hourly cleanup code in DXMsg to see whether that works better.
authorminima <minima>
Fri, 27 Oct 2000 22:01:07 +0000 (22:01 +0000)
committerminima <minima>
Fri, 27 Oct 2000 22:01:07 +0000 (22:01 +0000)
perl/DXMsg.pm

index 55834fc3a6edf0a408c6091df4fe7e0caffcef0e..2de6a22ad7cdf220b567212e24800071fa88ca51 100644 (file)
@@ -458,7 +458,7 @@ sub del_msg
        my $self = shift;
        
        # remove it from the active message list
-       @msg = map { $_ != $self ? $_ : () } @msg;
+       @msg = grep { $ref($_) && $_ != $self } @msg;
        
        # belt and braces (one day I will ask someone if this is REALLY necessary)
        delete $self->{gotit};
@@ -476,7 +476,7 @@ sub clean_old
        
        # mark old messages for deletion
        foreach $ref (@msg) {
-               if (!$ref->{keep} && $ref->{t} < $main::systime - $maxage) {
+               if (ref($ref) && !$ref->{keep} && $ref->{t} < $main::systime - $maxage) {
                        $ref->{deleteme} = 1;
                        delete $ref->{gotit};
                        delete $ref->{list};
@@ -486,7 +486,7 @@ sub clean_old
        }
        
        # remove them all from the active message list
-       @msg = map { $_->{deleteme} ? () : $_ } @msg;
+       @msg = grep { ref($_) && !$_->{deleteme} } @msg;
        $last_clean = $main::systime;
 }