I am leaning towards #2. I've verified that all child processes are getting started, and I print ident from run_on_finish(). There are definitely some missing callback routine output. I'll continue to debug and get to the bottom of this. I'll also try your solution which will obviate the need for the sig alarm handler. thanks.