Changed engine termination condition to always finish when the network I/O is complete. This fixes the basic driver's use of runProgram