def run(self): while True: patientAllTasksDict = self.queue.get() patientError=False subtaskList=map(lambda x: str(x), sorted(map(lambda x: int(x), patientAllTasksDict.keys()))) for subTaskGroup in subtaskList: if patientError: break subTaskGroupDict=patientAllTasksDict[subTaskGroup] for JobDict in subTaskGroupDict: self.parallelDicts.append(JobDict) jobEvent = threading.Event() jobThread = Job.pipelineJob(jobEvent, self.drmaaSession, self.logFileWriter, self.parallelDicts) if not self.runThreadAndWait(jobThread, jobEvent): patientError=True continue # break out of current iteration of for loop because error occurred in job self.parallelDicts=[] self.queue.task_done()