about summary refs log tree commit homepage
path: root/lib/PublicInbox/Git.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/Git.pm')
-rw-r--r--lib/PublicInbox/Git.pm5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index f5c7a95c..2f1a61f9 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -198,7 +198,10 @@ sub _destroy {
         my $p = delete $self->{$pid} or return;
         delete @$self{($in, $out)};
         delete $self->{$err} if $err; # `err_c'
-        waitpid $p, 0;
+
+        # PublicInbox::DS may not be loaded
+        eval { PublicInbox::DS::dwaitpid($p, undef, undef) };
+        waitpid($p, 0) if $@; # wait synchronously if not in event loop
 }
 
 sub fail {