WyriHaximus / reactphp-child-process-pool

MIT License
40 stars 9 forks source link

Exit() of child process not counted #48

Open woytam opened 4 years ago

woytam commented 4 years ago

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: 1) Is there important to ignore exitCode === 0 in Messenger? 2) Try to catch exit event on React\ChildProcess\Process 3) Add to documentation, it is important to Terminate child process with non-zero exit codes to keep Flexible pool working.

WyriHaximus commented 4 years ago

Well it was never designed to use exit() to be honest 🤐 . Will do 3 for sure and try to see if 2 is possible 👍