sub incr {
my $lei = shift;
+ $lei->{incr_pid} = $$ if @_;
while (my ($f, $n) = splice(@_, 0, 2)) { $lei->{$f} += $n }
}
# can immediately reread it
sub DESTROY {
my ($self) = @_;
- for my $k (sort(grep(/\A-nr_/, keys %$self))) {
- my $nr = $self->{$k};
- substr($k, 0, length('-nr_'), '');
- $self->child_error(0, "$nr $k messages");
+ if (defined($self->{incr_pid}) && $self->{incr_pid} == $$) {
+ for my $k (sort(grep(/\A-nr_/, keys %$self))) {
+ my $nr = $self->{$k};
+ substr($k, 0, length('-nr_'), '');
+ $self->child_error(0, "$nr $k messages");
+ }
}
$self->{1}->autoflush(1) if $self->{1};
stop_pager($self);
delete $l2m->{mbl}; # drop dotlock
}
}
+ my $nr_w = delete($lei->{-nr_write}) // 0;
+ my $nr_dup = (delete($lei->{-nr_seen}) // 0) - $nr_w;
if ($lei->{-progress}) {
my $tot = $lei->{-mset_total} // 0;
- my $nr_w = delete($lei->{-nr_write}) // 0;
- my $d = (delete($lei->{-nr_seen}) // 0) - $nr_w;
my $x = "$tot matches";
- $x .= ", $d duplicates" if $d;
+ $x .= ", $nr_dup duplicates" if $nr_dup;
if ($l2m) {
my $m = "# $nr_w written to " .
"$lei->{ovv}->{dst} ($x)";