def close(self): self._callback_lock.acquire() try: for callback, args in self._callbacks: print 'Callback discarded because close: %s' % callback self._callbacks = [] finally: self._callback_lock.release() return Trigger.close(self)