I have found out, that if child process exited by function exit() with return code 0, it is not handled as process termination in flexible pool.
The reason is in code reactphp-child-process-messenger/src/Factory.php#L211, where for exitCode zero is not thrown error
if ($exitCode === 0) {
return;
}
If child process calls exit(), Flexible pool will still count this child, although process is terminated.
There is question, how to resolve this. I have a few ideas:
- Is there important to ignore
exitCode === 0 in Messenger?
- Try to catch
exit event on React\ChildProcess\Process
- Add to documentation, it is important to Terminate child process with non-zero exit codes to keep Flexible pool working.
I have found out, that if child process exited by function
exit()with return code 0, it is not handled as process termination in flexible pool.The reason is in code reactphp-child-process-messenger/src/Factory.php#L211, where for exitCode zero is not thrown error
If child process calls
exit(), Flexible pool will still count this child, although process is terminated.There is question, how to resolve this. I have a few ideas:
exitCode === 0in Messenger?exitevent onReact\ChildProcess\Process