def onComplete(self, success, result): def wrapped_finish(): Task.instance = None self.callback(success, result) if success: log.debug('[Task] completed with success') else: log.debug('[Task] completed with failure') # To make sure that, when we abort processing of task, # that its always the same type of failure if self._aborted: success = False result = failure.Failure(AddonThreadException()) fnc_out_queue.put(wrapped_finish) m_pump.send(0)
def wrapped_func(*args, **kwargs): task = Task.getInstance() if task and task._aborted: raise AddonThreadException() func(*args, **kwargs)