summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkjnilsson <knilsson@pivotal.io>2021-04-08 17:50:16 +0100
committerkjnilsson <knilsson@pivotal.io>2021-04-08 17:50:16 +0100
commit357132aaeab0b358aaaf8bb73c8b97cec06b12bf (patch)
tree9c0ee134a7a537f61fab4f6f02f2dbde95af5aa0
parent38deddf64d9b0450e42f0bff9174d06708a2990f (diff)
downloadrabbitmq-server-git-amqp10-handle-nacks.tar.gz
-rw-r--r--deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl13
1 files changed, 7 insertions, 6 deletions
diff --git a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl
index c790dbe999..ec31924937 100644
--- a/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl
+++ b/deps/rabbitmq_amqp1_0/src/rabbit_amqp1_0_session.erl
@@ -369,21 +369,22 @@ nack(#'basic.nack'{delivery_tag = DTag, multiple = Multiple}, Session0) ->
{Disposition, Session}.
delivery_ids(DTag, Multiple,
- #session{incoming_unsettled_map = Unsettled} = Session) ->
+ #session{incoming_unsettled_map = Unsettled0} = Session) ->
case Multiple of
- true -> acknowledgement_range(DTag, Unsettled);
+ true ->
+ {Ids, Unsettled} = acknowledgement_range(DTag, Unsettled0),
+ {Ids, Session#session{incoming_unsettled_map = Unsettled}};
false ->
- case gb_trees:lookup(DTag, Unsettled) of
+ case gb_trees:lookup(DTag, Unsettled0) of
{value, #incoming_delivery{ delivery_id = Id }} ->
{[Id],
- Session#session{incoming_unsettled_map = gb_trees:delete(DTag, Unsettled)}
- };
+ Session#session{incoming_unsettled_map =
+ gb_trees:delete(DTag, Unsettled0)}};
none ->
{[], Session}
end
end.
-
acknowledgement_range(DTag, Unsettled) ->
acknowledgement_range(DTag, Unsettled, []).