lib/PublicInbox/WatchMaildir.pm | 7 ++++--- diff --git a/lib/PublicInbox/WatchMaildir.pm b/lib/PublicInbox/WatchMaildir.pm index 288f64d1e6c23e1fd53dfbf1d094dff5379f734e..e3df85159e7d9af50d93c7ce3f9d7dd9b0701ef4 100644 --- a/lib/PublicInbox/WatchMaildir.pm +++ b/lib/PublicInbox/WatchMaildir.pm @@ -123,9 +123,9 @@ } sub _done_for_now { my ($self) = @_; - my $importers = $self->{importers}; - foreach my $im (values %$importers) { - $im->done; + local $PublicInbox::DS::in_loop = 0; # waitpid() synchronously + for (values %{$self->{importers}}) { + $_->done if $_; # $_ may be undef during cleanup } } @@ -936,6 +936,7 @@ sub fs_scan_step { my ($self) = @_; return if $self->{quit}; my $op = shift @{$self->{ops}}; + local $PublicInbox::DS::in_loop = 0; # waitpid() synchronously # continue existing scan my $max = 10;