return $smsg;
}
# refill result set
- $ctx->{msgs} = $msgs = $ctx->{over}->get_thread($ctx->{mid},
- $ctx->{prev});
+ my $over = $ctx->{ibx}->over or return $ctx->gone('over');
+ $ctx->{msgs} = $msgs = $over->get_thread($ctx->{mid},
+ $ctx->{prev});
return unless @$msgs;
$ctx->{prev} = $msgs->[-1];
}
my $msgs = $ctx->{msgs} = $over->get_thread($ctx->{mid}, {});
return [404, [qw(Content-Type text/plain)], []] if !@$msgs;
$ctx->{prev} = $msgs->[-1];
- $ctx->{over} = $over; # bump refcnt
require PublicInbox::MboxGz;
PublicInbox::MboxGz::mbox_gz($ctx, \&thread_cb, $msgs->[0]->{subject});
}
sub all_ids_cb {
my ($ctx) = @_;
+ my $over = $ctx->{ibx}->over or return $ctx->gone('over');
my $ids = $ctx->{ids};
do {
while ((my $num = shift @$ids)) {
- my $smsg = $ctx->{over}->get_art($num) or next;
+ my $smsg = $over->get_art($num) or next;
return $smsg;
}
- $ctx->{ids} = $ids = $ctx->{over}->ids_after(\($ctx->{prev}));
+ $ctx->{ids} = $ids = $over->ids_after(\($ctx->{prev}));
} while (@$ids);
}
sub mbox_all_ids {
my ($ctx) = @_;
my $prev = 0;
- $ctx->{over} = $ctx->{ibx}->over or
+ my $over = $ctx->{ibx}->over or
return PublicInbox::WWW::need($ctx, 'Overview');
- my $ids = $ctx->{over}->ids_after(\$prev) or return
+ my $ids = $over->ids_after(\$prev) or return
[404, [qw(Content-Type text/plain)], ["No results found\n"]];
$ctx->{ids} = $ids;
$ctx->{prev} = $prev;
+ $ctx->{-low_prio} = 1;
require PublicInbox::MboxGz;
PublicInbox::MboxGz::mbox_gz($ctx, \&all_ids_cb, 'all');
}
-sub gone ($$) {
- my ($ctx, $what) = @_;
- warn "W: `$ctx->{ibx}->{inboxdir}' $what went away unexpectedly\n";
- undef;
-}
-
sub results_cb {
my ($ctx) = @_;
- my $over = $ctx->{ibx}->over or return gone($ctx, 'over');
+ my $over = $ctx->{ibx}->over or return $ctx->gone('over');
while (1) {
while (defined(my $num = shift(@{$ctx->{ids}}))) {
my $smsg = $over->get_art($num) or next;
return $smsg;
}
- # refill result set
- my $srch = $ctx->{ibx}->isrch or return gone($ctx, 'search');
+ # refill result set, deprioritize since there's many results
+ my $srch = $ctx->{ibx}->isrch or return $ctx->gone('search');
my $mset = $srch->mset($ctx->{query}, $ctx->{qopts});
my $size = $mset->size or return;
$ctx->{qopts}->{offset} += $size;
$ctx->{ids} = $srch->mset_to_artnums($mset, $ctx->{qopts});
+ $ctx->{-low_prio} = 1;
}
}
sub results_thread_cb {
my ($ctx) = @_;
- my $over = $ctx->{ibx}->over or return gone($ctx, 'over');
+ my $over = $ctx->{ibx}->over or return $ctx->gone('over');
while (1) {
while (defined(my $num = shift(@{$ctx->{xids}}))) {
my $smsg = $over->get_art($num) or next;
# refills ctx->{xids}
next if $over->expand_thread($ctx);
- # refill result set
- my $srch = $ctx->{ibx}->isrch or return gone($ctx, 'search');
+ # refill result set, deprioritize since there's many results
+ my $srch = $ctx->{ibx}->isrch or return $ctx->gone('search');
my $mset = $srch->mset($ctx->{query}, $ctx->{qopts});
my $size = $mset->size or return;
$ctx->{qopts}->{offset} += $size;
$ctx->{ids} = $srch->mset_to_artnums($mset, $ctx->{qopts});
+ $ctx->{-low_prio} = 1;
}
}