def work(self, args={}, callback=None, callback_args={}): """ extended to add locks at the end of the work """ try: # set a failsafe to ensure events get cleared self.failsafe = reactor.callLater(5, self.clear_events) ret = Task.work(self, args, callback, callback_args) self.finished_event.set() finally: if self.failsafe: self.failsafe.cancel() return ret