What I'd like to do is have the parent process fork a number of children processes and wait for one to complete, then start another child to work on the next remaining subroutine.
So you'd like to have x child processes running at any given time? Will all the child processes be doing the same sort of work?
I would think "wait" (rather than "waitpid") should fit the bill, as "wait" should return the PID of whatever child exited most recently, right?
--