We were accidentally using the wrong variable (filter_pid instead of pid)
when looking at the result of a fork call, with the result that both
processes thought they were the parent.
/* Create a child process which can exec() the filter program. */
pid = fork();
- if (filter_pid < 0)
+ if (pid < 0)
throw IOException("Unable to fork filter process");
- if (filter_pid > 0) {
+ if (pid > 0) {
/* Parent process */
close(fds[0]);
cloexec(fds[1]);