Я думаю, вы должны использовать вызов waitpid()
. Это позволяет подождать «любого дочернего процесса», поэтому, если вы делаете это надлежащее количество раз, вы должны быть золотыми.
Если это не удается (не уверены в гарантиях), вы можете сделать грубая сила, сидящая в цикле, делая waitpid()
с опцией NOHANG
на каждом из ваших дочерних PID, а затем задерживаясь некоторое время, прежде чем делать это снова.