summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2012-10-31 12:39:54 +0000
committerMatthias Radestock <matthias@rabbitmq.com>2012-10-31 12:39:54 +0000
commitf8b41a777442309c24e8184d5ad07caab75a6e50 (patch)
tree8f38b2b9b358808937193c221b084331898041c5 /src
parent1c7557a22d5b354c4c2e8a2268536511d020e689 (diff)
downloadrabbitmq-server-git-f8b41a777442309c24e8184d5ad07caab75a6e50.tar.gz
HA optimisation: don't broadcast 'drop' when nothing has been dropped
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_mirror_queue_master.erl5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl
index 6a7a28f291..df733546b4 100644
--- a/src/rabbit_mirror_queue_master.erl
+++ b/src/rabbit_mirror_queue_master.erl
@@ -229,7 +229,10 @@ dropwhile(Pred, AckRequired,
{Next, Msgs, BQS1} = BQ:dropwhile(Pred, AckRequired, BQS),
Len1 = BQ:len(BQS1),
Dropped = Len - Len1,
- ok = gm:broadcast(GM, {drop, Len1, Dropped, AckRequired}),
+ case Dropped of
+ 0 -> ok;
+ _ -> ok = gm:broadcast(GM, {drop, Len1, Dropped, AckRequired})
+ end,
SetDelivered1 = lists:max([0, SetDelivered - Dropped]),
{Next, Msgs, State #state { backing_queue_state = BQS1,
set_delivered = SetDelivered1 } }.