code: def child_done(self, task, result, count):
          
          with self.regcond:
              self.logger.debug('Concurrent task %d/%d has completed' % (
                  self.count, self.numtasks))
              self.count -= 1
              self.taskset.remove(task)
              self.totaltime += task.getExecutionTime()
              self.results[(count, task)] = result
              if self.count <= 0:
                  self.regcond.notifyAll()
docs: Acquire the condition variable for the compound task object.
          Decrement the thread count.  If we are the last thread to
          finish, release compound task thread, which is blocked in execute().