Make the Daemon role only clean up child processes if it is the parent process
Add async input ability and postpone calling done() in all_results() until absolutely necessary because it is slow.