the main process needs to watch children all the time

ie. we make a while an exit it only if the context changes to
a child process, not just an if()