+sub emit_atom_thread {
+ my ($cb, $ctx) = @_;
+ my $res = $ctx->{srch}->get_thread($ctx->{mid});
+ return _no_thread($cb) unless $res->{total};
+ my $fh = $cb->([200, ['Content-Type' => 'application/xml']]);
+ my $feed_opts = get_feedopts($ctx);
+
+ my $html_url = $feed_opts->{atomurl} = $ctx->{self_url};
+ $html_url =~ s!/atom\z!/!;
+ $feed_opts->{url} = $html_url;
+ $feed_opts->{emit_header} = 1;
+
+ my $git = PublicInbox::GitCatFile->new($ctx->{git_dir});
+ foreach my $msg (@{$res->{msgs}}) {
+ add_to_feed($feed_opts, $fh, mid2path($msg->mid), $git);
+ }
+ $git = undef; # destroy pipes
+ _end_feed($fh);
+}