From ecd368c9c19b3b777eb0faff91604ee5f35dcf9b Mon Sep 17 00:00:00 2001 From: Ask Solem Date: Sun, 24 Jun 2012 12:00:53 +0100 Subject: [PATCH] after_reply_message_received in finally block --- kombu/common.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/kombu/common.py b/kombu/common.py index c38c4c03..4ecfc2af 100644 --- a/kombu/common.py +++ b/kombu/common.py @@ -168,13 +168,15 @@ def isend_reply(pool, exchange, req, msg, props, **retry_policy): def collect_replies(conn, channel, queue, *args, **kwargs): no_ack = kwargs.setdefault('no_ack', True) received = False - for body, message in itermessages(conn, channel, queue, *args, **kwargs): - if not no_ack: - message.ack() - received = True - yield body - if received: - channel.after_reply_message_received(queue.name) + try: + for body, message in itermessages(conn, channel, queue, *args, **kwargs): + if not no_ack: + message.ack() + received = True + yield body + finally: + if received: + channel.after_reply_message_received(queue.name) def _ensure_errback(exc, interval):