// now make sure all of the running tasks have completed
synchronized(numExecutingOutputs)
{
while (numExecutingOutputs.get() > 0)
{
try { numExecutingOutputs.wait(); }
catch (InterruptedException e)
{
// if we were interupted for a shutdown then just stop
// waiting for all of the threads to finish
if (!isRunning)