Issue in posix ActiveProcess, random exit status

I spot a nasty issue in posix ActiveProcess::isRunning if called in a loop together with readProcessOutput. because the childState int is not initialised to 0, the second call to waitpid will return strange values and i end up with random exit status all the time.

bool isRunning() noexcept
    if (childPID == 0)
        return false;

    int childState = 0; // <<<<<<<<<<<< INIT TO ZERO !
    auto pid = waitpid (childPID, &childState, WNOHANG);

    if (pid == 0)
        return true;

    if (WIFEXITED (childState))
        exitCode = WEXITSTATUS (childState);
        return false;

    return ! WIFSIGNALED (childState);

The loop where i discovered the issue is something on the line of this:

for (;;)
    auto bytesRead = childProcess.readProcessOutput(buffer, bufferSize);

    if (bytesRead <= 0 && ! childProcess.isRunning())

    textCallback(buffer, bytesRead);

Which works with unbuffered ::read (instead of juce fread).

Thanks, we’ll push a fix shortly.