X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSearch.pm;h=f7fdf85478cfd387a728b935ecf5d212df35be3b;hb=f91753f00b760c0e06eb0384792e5b18bd99bb0f;hp=91251246ccf4ddf20a94af806787aae89637d14a;hpb=35ff6bb106909b1c1232666a9792156dfa398ea8;p=public-inbox.git diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index 91251246..f7fdf854 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -185,10 +185,16 @@ sub get_thread { sub retry_reopen { my ($self, $cb) = @_; - my $ret; for my $i (1..10) { - eval { $ret = $cb->() }; - return $ret unless $@; + if (wantarray) { + my @ret; + eval { @ret = $cb->() }; + return @ret unless $@; + } else { + my $ret; + eval { $ret = $cb->() }; + return $ret unless $@; + } # Exception: The revision being read has been discarded - # you should call Xapian::Database::reopen() if (ref($@) eq 'Search::Xapian::DatabaseModifiedError') { @@ -226,8 +232,9 @@ sub _enquire_once { my @msgs = map { PublicInbox::SearchMsg->load_doc($_->get_document); } $mset->items; + return \@msgs unless wantarray; - { total => $mset->get_matches_estimated, msgs => \@msgs } + ($mset->get_matches_estimated, \@msgs) } # read-write @@ -284,8 +291,8 @@ sub query_xover { } sub query_ts { - my ($self, $ts, $offset) = @_; - $self->{over_ro}->query_ts($ts, $offset); + my ($self, $ts, $prev) = @_; + $self->{over_ro}->query_ts($ts, $prev); } sub first_smsg_by_mid {