summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-10-17 19:31:49 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2011-10-17 19:31:49 +0100
commitd7ff83ad6ba5b24eee3bac34f1d70370f6e7f287 (patch)
treed8f873103606f84fb8d30bbb87be2ab59feb08e7
parentf993f9cdd966b9c32d9f4476956d37e337e87126 (diff)
downloadrabbitmq-server-d7ff83ad6ba5b24eee3bac34f1d70370f6e7f287.tar.gz
explain why client_update_flying phase 3 will always succeed
-rw-r--r--src/rabbit_msg_store.erl3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl
index c95cff1e..167ab41c 100644
--- a/src/rabbit_msg_store.erl
+++ b/src/rabbit_msg_store.erl
@@ -618,6 +618,9 @@ client_update_flying(Diff, MsgId, #client_msstate { flying_ets = FlyingEts,
true -> ok;
false -> try ets:update_counter(FlyingEts, Key, {2, Diff})
catch error:badarg ->
+ %% this is guaranteed to succeed since the
+ %% server only removes and updates flying_ets
+ %% entries; it never inserts them
true = ets:insert_new(FlyingEts, {Key, Diff})
end,
ok