]> Sergey Matveev's repositories - public-inbox.git/commitdiff
watch: commit changes to fast-import sooner
authorEric Wong <e@80x24.org>
Mon, 26 Jun 2017 02:56:03 +0000 (02:56 +0000)
committerEric Wong <e@80x24.org>
Mon, 26 Jun 2017 03:44:35 +0000 (03:44 +0000)
We should make changes visible sooner, even during
lengthy scans.

lib/PublicInbox/WatchMaildir.pm

index 5e79bb50cc1dc582af2f80d8f683097a3fe9db43..8e10e43f056c677d4deb6e116a71692a55eed704 100644 (file)
@@ -91,13 +91,18 @@ sub new {
 
 sub _done_for_now {
        my ($self) = @_;
 
 sub _done_for_now {
        my ($self) = @_;
+       my $importers = $self->{importers};
+       foreach my $im (values %$importers) {
+               $im->done if $im->{nchg};
+       }
+
        my $opendirs = $self->{opendirs};
 
        # spamdir scanning means every importer remains open
        my $spamdir = $self->{spamdir};
        return if defined($spamdir) && $opendirs->{$spamdir};
 
        my $opendirs = $self->{opendirs};
 
        # spamdir scanning means every importer remains open
        my $spamdir = $self->{spamdir};
        return if defined($spamdir) && $opendirs->{$spamdir};
 
-       foreach my $im (values %{$self->{importers}}) {
+       foreach my $im (values %$importers) {
                # not done if we're scanning
                next if $opendirs->{$im->{git}->{git_dir}};
                $im->done;
                # not done if we're scanning
                next if $opendirs->{$im->{git}->{git_dir}};
                $im->done;
@@ -263,11 +268,9 @@ sub scan {
                        $opendirs->{$dir} = $dh if $n < 0;
                }
        }
                        $opendirs->{$dir} = $dh if $n < 0;
                }
        }
-       if (keys %$opendirs) { # do we have more work to do?
-               trigger_scan($self, 'cont');
-       } else {
-               _done_for_now($self);
-       }
+       _done_for_now($self);
+       # do we have more work to do?
+       trigger_scan($self, 'cont') if keys %$opendirs;
 }
 
 sub _path_to_mime {
 }
 
 sub _path_to_mime {