sub git_to_mail { # git->cat_async callback
my ($bref, $oid, $type, $size, $arg) = @_;
sub git_to_mail { # git->cat_async callback
my ($bref, $oid, $type, $size, $arg) = @_;
my ($write_cb, $smsg) = @$arg;
if ($type eq 'missing' && $smsg->{-lms_ro}) {
if ($bref = $smsg->{-lms_ro}->local_blob($oid, 1)) {
my ($write_cb, $smsg) = @$arg;
if ($type eq 'missing' && $smsg->{-lms_ro}) {
if ($bref = $smsg->{-lms_ro}->local_blob($oid, 1)) {
my $zsfx = $self->{zsfx} or return;
my $cmd = PublicInbox::MboxReader::zsfx2cmd($zsfx, undef, $lei);
my ($r, $w) = @{delete $lei->{zpipe}};
my $zsfx = $self->{zsfx} or return;
my $cmd = PublicInbox::MboxReader::zsfx2cmd($zsfx, undef, $lei);
my ($r, $w) = @{delete $lei->{zpipe}};
- my $rdr = { 0 => $r, 1 => $lei->{1}, 2 => $lei->{2} };
+ my $rdr = { 0 => $r, 1 => $lei->{1}, 2 => $lei->{2}, pgid => 0 };
my $pid = spawn($cmd, undef, $rdr);
my $pp = gensym;
my $dup = bless { "pid.$pid" => $cmd }, ref($lei);
my $pid = spawn($cmd, undef, $rdr);
my $pp = gensym;
my $dup = bless { "pid.$pid" => $cmd }, ref($lei);
- } while (!($ok = link($tmp, $dst.$base)) && $!{EEXIST} &&
- ($rand = _rand.','));
- die "link($tmp, $dst$base): $!" unless $ok;
- unlink($tmp) or warn "W: failed to unlink $tmp: $!\n";
+ } while (!($ok = rename_noreplace($tmp, $dst.$base)) &&
+ $!{EEXIST} && ($rand = _rand.','));
PublicInbox::InboxWritable->new($ibx, @creat);
$ibx->init_inbox if @creat;
my $v2w = $ibx->importer;
PublicInbox::InboxWritable->new($ibx, @creat);
$ibx->init_inbox if @creat;
my $v2w = $ibx->importer;
$v2w->wq_workers_start("lei/v2w $dir", 1, $lei->oldset, {lei => $lei});
$v2w->wq_workers_start("lei/v2w $dir", 1, $lei->oldset, {lei => $lei});
$self->{dst}, \$self->{-au_noted});
}
$self->wq_broadcast('do_post_auth');
$self->{dst}, \$self->{-au_noted});
}
$self->wq_broadcast('do_post_auth');