class ExecutionThread(ThreadWithExc): def __init__(self, observer, parameters): super(ExecutionThread, self).__init__() self.observer = observer self.parameters = parameters self.status = {"status":"Initializing...","value":False} self.driver = None self.driver_process = None def run(self): global ongoing_clustering ongoing_clustering = True self.status_listener = StatusListener(self.observer, self.status) self.status_listener.start() try: self.driver = Driver(self.observer) self.driver.run(self.parameters) except Exception, e: print e print traceback.format_exc() finally: