diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2014-01-13 16:12:39 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2014-01-13 16:12:39 +0000 |
| commit | 092c4ce6f11b99ad12044a52ab8ed46589277405 (patch) | |
| tree | c75280c37335a32b124fede63bbb99f06a3f085b /src | |
| parent | fc549b40576836a381d738d36e98652d58be893b (diff) | |
| download | rabbitmq-server-git-092c4ce6f11b99ad12044a52ab8ed46589277405.tar.gz | |
Ignore prefetch in autoack mode.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_limiter.erl | 8 | ||||
| -rw-r--r-- | src/rabbit_queue_consumers.erl | 2 |
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, |
