in reply to Multiprocess - child process cannot be finished successfully
wait()'ing for a child process to terminate is correct. But expecting wait() to return -1 on success is causing your block not to execute at all because wait() can also return the PID of the process it found just terminated. E.g. from the wait documentation:
wait: Behaves like wait(2) on your system: it waits for a child process to terminate and returns the pid of the deceased process, or -1 if there are no child processes.So you just need to remove that == -1 check.
That said, wait() waits for ANY child process including those by a system command. Why not being explicit and wait for YOUR OWN child with waitpid($pid, 0)?
bw, bliako
Edit: kcott made the same diagnosis a few minutes earlier, though I read it after posting.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Multiprocess - child process cannot be finished successfully
by wonderG (Novice) on Sep 09, 2022 at 13:21 UTC | |
by bliako (Abbot) on Sep 09, 2022 at 14:47 UTC | |
by wonderG (Novice) on Sep 09, 2022 at 15:25 UTC | |
by bliako (Abbot) on Sep 09, 2022 at 21:50 UTC | |
by wonderG (Novice) on Sep 10, 2022 at 02:04 UTC | |
| |
by wonderG (Novice) on Sep 10, 2022 at 08:08 UTC |