in uamqp/client.py [0:0]
def _message_generator(self):
"""Iterate over processed messages in the receive queue.
:rtype: generator[~uamqp.message.Message]
"""
self.open()
auto_complete = self.auto_complete
self.auto_complete = False
self._timeout_reached = False
self._last_activity_timestamp = None
receiving = True
message = None
try:
while receiving and not self._timeout_reached:
while receiving and self._received_messages.empty() and not self._timeout_reached:
receiving = self.do_work()
while not self._received_messages.empty():
message = self._received_messages.get()
self._received_messages.task_done()
yield message
self._complete_message(message, auto_complete)
finally:
self._complete_message(message, auto_complete)
self.auto_complete = auto_complete
if self._shutdown_after_timeout:
self.close()