summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2015-03-13 16:46:12 +0000
committerSimon MacMullen <simon@rabbitmq.com>2015-03-13 16:46:12 +0000
commit73f2188d5c2d3b84fc9ffb1a05d4b5bfc82e7b5d (patch)
tree727ed2b50c063970cde05434c13f58a611918eed
parent17a5da8f085e4d4acb349fc41ceca0e923ac67d3 (diff)
parentbe901c15d817f4e31b5563ca582e6ff6b39c78e7 (diff)
downloadrabbitmq-server-git-73f2188d5c2d3b84fc9ffb1a05d4b5bfc82e7b5d.tar.gz
Merge branch 'rabbitmq-server-67' into stable
-rw-r--r--src/rabbit_priority_queue.erl9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/rabbit_priority_queue.erl b/src/rabbit_priority_queue.erl
index 1d9522f613..30e7c051fe 100644
--- a/src/rabbit_priority_queue.erl
+++ b/src/rabbit_priority_queue.erl
@@ -332,7 +332,7 @@ set_ram_duration_target(DurationTarget,
?passthrough1(set_ram_duration_target(DurationTarget, BQS)).
ram_duration(State = #state{bq = BQ}) ->
- fold_add2(fun (_P, BQSN) -> BQ:ram_duration(BQSN) end, State);
+ fold_min2(fun (_P, BQSN) -> BQ:ram_duration(BQSN) end, State);
ram_duration(State = #passthrough{bq = BQ, bqs = BQS}) ->
?passthrough2(ram_duration(BQS)).
@@ -459,6 +459,13 @@ fold_add2(Fun, State) ->
{add_maybe_infinity(Res, Acc), BQSN1}
end, 0, State).
+%% Fold over results assuming results are numbers and we want the minimum
+fold_min2(Fun, State) ->
+ fold2(fun (P, BQSN, Acc) ->
+ {Res, BQSN1} = Fun(P, BQSN),
+ {erlang:min(Res, Acc), BQSN1}
+ end, infinity, State).
+
%% Fold over results assuming results are lists and we want to append
%% them, and also that we have some AckTags we want to pass in to each
%% invocation.