summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Klishin <mklishin@pivotal.io>2016-06-14 22:50:36 +0300
committerMichael Klishin <mklishin@pivotal.io>2016-06-14 22:50:36 +0300
commitd8d72f12867599a1687b32a99a50fd4ce8ddbe1b (patch)
tree94c110ed4e6777e42ff9562029381ebaad8be220 /src
parent03d015c3bd2c86dc6df8413b58e2d780c783af08 (diff)
parent55acdb57727cc2cda19972269693d4c9133d8810 (diff)
downloadrabbitmq-server-git-d8d72f12867599a1687b32a99a50fd4ce8ddbe1b.tar.gz
Merge branch 'rabbitmq-server-687' into stable
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_priority_queue.erl13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/rabbit_priority_queue.erl b/src/rabbit_priority_queue.erl
index a3bfb5cdfa..ae8a38daf0 100644
--- a/src/rabbit_priority_queue.erl
+++ b/src/rabbit_priority_queue.erl
@@ -591,10 +591,15 @@ partition_publish_delivered_batch(Publishes, MaxP) ->
Publishes, fun ({Msg, _}) -> Msg end, MaxP).
partition_publishes(Publishes, ExtractMsg, MaxP) ->
- lists:foldl(fun (Pub, Dict) ->
- Msg = ExtractMsg(Pub),
- rabbit_misc:orddict_cons(priority(Msg, MaxP), Pub, Dict)
- end, orddict:new(), Publishes).
+ Partitioned =
+ lists:foldl(fun (Pub, Dict) ->
+ Msg = ExtractMsg(Pub),
+ rabbit_misc:orddict_cons(priority(Msg, MaxP), Pub, Dict)
+ end, orddict:new(), Publishes),
+ orddict:map(fun (_P, RevPubs) ->
+ lists:reverse(RevPubs)
+ end, Partitioned).
+
priority_bq(Priority, [{MaxP, _} | _] = BQSs) ->
bq_fetch(priority(Priority, MaxP), BQSs).