From: Eric Wong Date: Fri, 10 Jan 2025 23:20:12 +0000 (+0000) Subject: v2writable: hoist out process_todo sub for extindex X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90e1ea8fbc34b356d42542eeb7b2d97321209e15;p=thirdparty%2Fpublic-inbox.git v2writable: hoist out process_todo sub for extindex We can have consistent $self->{quit} detection this way and eliminate an early return from index_todo. --- diff --git a/lib/PublicInbox/ExtSearchIdx.pm b/lib/PublicInbox/ExtSearchIdx.pm index 6c578b3b6..807666fc8 100644 --- a/lib/PublicInbox/ExtSearchIdx.pm +++ b/lib/PublicInbox/ExtSearchIdx.pm @@ -417,10 +417,7 @@ sub _sync_inbox ($$$) { } else { return "E: $ekey unsupported inbox version (v$v)"; } - for my $unit (@{delete($self->{todo}) // []}) { - last if $self->{quit}; - index_todo($self, $sync, $unit); - } + PublicInbox::V2Writable::process_todo $self, $sync; $self->{midx}->index_ibx($ibx) unless $self->{quit}; $ibx->git->cleanup; # done with this inbox, now undef; diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm index 072542cb0..548d8bde0 100644 --- a/lib/PublicInbox/V2Writable.pm +++ b/lib/PublicInbox/V2Writable.pm @@ -1122,7 +1122,6 @@ sub index_xap_step ($$$$;$) { sub index_todo ($$$) { my ($self, $sync, $unit) = @_; - return if $self->{quit}; unindex_todo($self, $sync, $unit); my $stk = delete($unit->{stack}) or return; my $all = $self->git; # initialize self->{ibx}->{git} @@ -1195,6 +1194,14 @@ sub xapian_only ($;$$) { $self->done; } +sub process_todo ($$) { + my ($self, $sync) = @_; + for my $unit (@{delete($self->{todo}) // []}) { + last if $self->{quit}; + $self->index_todo($sync, $unit); # may be ExtSearchIdx + } +} + # public, called by public-inbox-index sub index_sync { my ($self, $opt) = @_; @@ -1252,7 +1259,7 @@ sub index_sync { } } # work forwards through history - index_todo($self, $sync, $_) for @{delete($self->{todo}) // []}; + process_todo $self, $sync; $self->{oidx}->rethread_done($opt) unless $self->{quit}; $self->done;