in qpid/queue.py [0:0]
def listen(self, listener, exc_listener = None):
if listener is None and exc_listener is not None:
raise ValueError("cannot set exception listener without setting listener")
if listener is None:
if self.thread is not None:
self.put(Queue.STOP)
# loop and timed join permit keyboard interrupts to work
while self.thread.is_alive():
self.thread.join(3)
self.thread = None
self.listener = listener
self.exc_listener = exc_listener
if listener is not None and self.thread is None:
self.thread = Thread(target = self.run)
self.thread.daemon = True
self.thread.start()