lib/PublicInbox/Qspawn.pm | 7 ++++++- diff --git a/lib/PublicInbox/Qspawn.pm b/lib/PublicInbox/Qspawn.pm index 4b9bca5a075cc50ef0ca76e39fcd611606350c56..54976b008d839b302a0d4c262157691f32818a07 100644 --- a/lib/PublicInbox/Qspawn.pm +++ b/lib/PublicInbox/Qspawn.pm @@ -56,6 +56,11 @@ } } ($self->{rpipe}, $self->{pid}) = popen_rd($cmd, $env, \%opts); + + # drop any IO handles opt was holding open via $opt->{hold} + # No need to hold onto the descriptor once the child process has it. + $self->{args} = $cmd; # keep this around for logging + if (defined $self->{pid}) { $limiter->{running}++; } else { @@ -104,7 +109,7 @@ return unless $err; $self->{err} = $err; my $env = $self->{env} or return; if (!$env->{'qspawn.quiet'}) { - log_err($env, join(' ', @{$self->{args}->[0]}) . ": $err"); + log_err($env, join(' ', @{$self->{args}}) . ": $err"); } }