summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-01-13 16:12:39 +0000
committerSimon MacMullen <simon@rabbitmq.com>2014-01-13 16:12:39 +0000
commit092c4ce6f11b99ad12044a52ab8ed46589277405 (patch)
treec75280c37335a32b124fede63bbb99f06a3f085b /src
parentfc549b40576836a381d738d36e98652d58be893b (diff)
downloadrabbitmq-server-git-092c4ce6f11b99ad12044a52ab8ed46589277405.tar.gz
Ignore prefetch in autoack mode.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_limiter.erl8
-rw-r--r--src/rabbit_queue_consumers.erl2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/rabbit_limiter.erl b/src/rabbit_limiter.erl
index 64523c1088..09bf03e6f3 100644
--- a/src/rabbit_limiter.erl
+++ b/src/rabbit_limiter.erl
@@ -129,7 +129,7 @@
%% queue API
-export([client/1, activate/1, can_send/3, resume/1, deactivate/1,
is_suspended/1, is_consumer_blocked/2, credit/5,
- set_consumer_prefetch/3, ack_from_queue/3,
+ set_consumer_prefetch/4, ack_from_queue/3,
drained/1, forget_consumer/2]).
%% callbacks
-export([init/1, terminate/2, code_change/3, handle_call/3, handle_cast/2,
@@ -291,10 +291,12 @@ credit(Limiter = #qstate{credits = Credits}, CTag, Credit, Drain, IsEmpty) ->
end,
{Res, Limiter#qstate{credits = gb_trees:enter(CTag, Cr, Credits)}}.
-set_consumer_prefetch(Limiter = #qstate{credits = Credits}, CTag, Credit) ->
+set_consumer_prefetch(Lim, _CTag, true, _Credit) ->
+ Lim;
+set_consumer_prefetch(Lim = #qstate{credits = Credits}, CTag, false, Credit) ->
Credits1 = gb_trees:enter(
CTag, #credit{credit = Credit, mode = auto}, Credits),
- Limiter#qstate{credits = Credits1}.
+ Lim#qstate{credits = Credits1}.
ack_from_queue(Limiter = #qstate{credits = Credits}, CTag, Credit) ->
{Credits1, Unblocked} =
diff --git a/src/rabbit_queue_consumers.erl b/src/rabbit_queue_consumers.erl
index 63de546ce7..8ca6855708 100644
--- a/src/rabbit_queue_consumers.erl
+++ b/src/rabbit_queue_consumers.erl
@@ -134,7 +134,7 @@ add(ChPid, ConsumerTag, NoAck, LimiterPid, LimiterActive, CreditArgs, Args,
none -> C1;
{credit, C, D} -> credit_and_drain(C1, ConsumerTag, C, D, IsEmpty);
{prefetch, P} -> Limiter2 = rabbit_limiter:set_consumer_prefetch(
- Limiter1, ConsumerTag, P),
+ Limiter1, ConsumerTag, NoAck, P),
C1#cr{limiter = Limiter2}
end),
Consumer = #consumer{tag = ConsumerTag,