The patch below fixes the creation of zombie processes due to a missing waitpid call in the ChildProcessMaster implementation:
diff --git a/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp b/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp
index 5ca5a8110..0f892ee76 100644
--- a/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp
+++ b/modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp
@@ -176,6 +176,10 @@ void ChildProcessMaster::killSlaveProcess()
connection.reset();
}
+ if (childProcess != nullptr) {
+ childProcess->waitForProcessToFinish(-1);
+ }
+
childProcess.reset();
}