diff options
| author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-07-25 15:22:23 +0100 |
|---|---|---|
| committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-07-25 15:22:23 +0100 |
| commit | 4063dc906fee9683fd1fcb614acff9d4a3ace7b3 (patch) | |
| tree | 25f393609a373e6ef51d005e3815ab1e137913d9 /src | |
| parent | 35ff81f33f6946e9cdf05a226c5ff32bcc9db9f7 (diff) | |
| download | rabbitmq-server-git-4063dc906fee9683fd1fcb614acff9d4a3ace7b3.tar.gz | |
refactor
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_channel.erl | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index 5c3e5cc9ab..ae7473320f 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -806,9 +806,11 @@ handle_method(#'basic.qos'{prefetch_count = PrefetchCount}, _, {_, _} -> LimiterToken end, LimiterToken3 = case rabbit_limiter:limit(LimiterToken1, PrefetchCount) of - ok -> LimiterToken1; - {disabled, LimiterToken2} -> unlimit_queues(State), - LimiterToken2 + ok -> + LimiterToken1; + {disabled, LimiterToken2} -> + ok = limit_queues(LimiterToken2, State), + LimiterToken2 end, {reply, #'basic.qos_ok'{}, State#ch{limiter_token = LimiterToken3}}; @@ -1077,9 +1079,11 @@ handle_method(#'confirm.select'{nowait = NoWait}, _, State) -> handle_method(#'channel.flow'{active = true}, _, State = #ch{limiter_token = LimiterToken}) -> LimiterToken2 = case rabbit_limiter:unblock(LimiterToken) of - ok -> LimiterToken; - {disabled, LimiterToken1} -> unlimit_queues(State), - LimiterToken1 + ok -> + LimiterToken; + {disabled, LimiterToken1} -> + ok = limit_queues(LimiterToken1, State), + LimiterToken1 end, {reply, #'channel.flow_ok'{active = true}, State#ch{limiter_token = LimiterToken2}}; @@ -1285,11 +1289,6 @@ enable_limiter(State = #ch{unacked_message_q = UAMQ, ok = limit_queues(LimiterToken1, State), LimiterToken1. -unlimit_queues(State = #ch{limiter_token = LimiterToken}) -> - LimiterToken1 = rabbit_limiter:disable(LimiterToken), - ok = limit_queues(LimiterToken1, State), - LimiterToken1. - limit_queues(Token, #ch{consumer_mapping = Consumers}) -> rabbit_amqqueue:limit_all(consumer_queues(Consumers), self(), Token). |
