about summary refs log tree commit homepage
path: root/lib/PublicInbox/Spawn.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/Spawn.pm')
-rw-r--r--lib/PublicInbox/Spawn.pm10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/PublicInbox/Spawn.pm b/lib/PublicInbox/Spawn.pm
index cb8b21c6..ec256698 100644
--- a/lib/PublicInbox/Spawn.pm
+++ b/lib/PublicInbox/Spawn.pm
@@ -366,15 +366,17 @@ sub spawn ($;$$) {
 }
 
 sub popen_rd {
-        my ($cmd, $env, $opt) = @_;
+        my ($cmd, $env, $opt, @cb_arg) = @_;
         pipe(my $r, local $opt->{1}) or die "pipe: $!\n";
-        PublicInbox::ProcessIO->maybe_new(spawn($cmd, $env, $opt), $r, $opt)
+        my $pid = spawn($cmd, $env, $opt);
+        PublicInbox::ProcessIO->maybe_new($pid, $r, @cb_arg);
 }
 
 sub popen_wr {
-        my ($cmd, $env, $opt) = @_;
+        my ($cmd, $env, $opt, @cb_arg) = @_;
         pipe(local $opt->{0}, my $w) or die "pipe: $!\n";
-        PublicInbox::ProcessIO->maybe_new(spawn($cmd, $env, $opt), $w, $opt)
+        my $pid = spawn($cmd, $env, $opt);
+        PublicInbox::ProcessIO->maybe_new($pid, $w, @cb_arg)
 }
 
 sub run_wait ($;$$) {