diff options
author | Matthias Radestock <matthias@lshift.net> | 2008-12-23 21:39:11 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@lshift.net> | 2008-12-23 21:39:11 +0000 |
commit | 20c86095dd1440f27f51763c932c71034d3fdde4 (patch) | |
tree | bd4850c98d3aa0c6524561c4dcd97872954157d2 | |
parent | 7b6e96533e2d572740818c801cef6f69a1824d9f (diff) | |
download | rabbitmq-server-20c86095dd1440f27f51763c932c71034d3fdde4.tar.gz |
handle the "no limiter" case more obviously
This is no semantic change since gen_server:cast(undefined, ...)
returns 'ok'. However, it only does so because it catches the 'badarg'
error thrown by erlang:send. It is probably more efficient to not
attempt the send in the first place. Plus for documentation purposes,
and to keep dialyzer happy, it is useful to state explicitly which
functions are expected to be called on an 'undefined' limiter.
-rw-r--r-- | src/rabbit_limiter.erl | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/rabbit_limiter.erl b/src/rabbit_limiter.erl index 824de072..e02f77b1 100644 --- a/src/rabbit_limiter.erl +++ b/src/rabbit_limiter.erl @@ -70,21 +70,19 @@ limit(LimiterPid, PrefetchCount) -> %% Ask the limiter whether the queue can deliver a message without %% breaching a limit -can_send(undefined, _QPid) -> - true; -can_send(LimiterPid, QPid) -> - gen_server:call(LimiterPid, {can_send, QPid}). +can_send(undefined, _QPid) -> true; +can_send(LimiterPid, QPid) -> gen_server:call(LimiterPid, {can_send, QPid}). %% Let the limiter know that the channel has received some acks from a %% consumer -ack(LimiterPid, Count) -> - gen_server:cast(LimiterPid, {ack, Count}). +ack(undefined, _Count) -> ok; +ack(LimiterPid, Count) -> gen_server:cast(LimiterPid, {ack, Count}). -register(LimiterPid, QPid) -> - gen_server:cast(LimiterPid, {register, QPid}). +register(undefined, _QPid) -> ok; +register(LimiterPid, QPid) -> gen_server:cast(LimiterPid, {register, QPid}). -unregister(LimiterPid, QPid) -> - gen_server:cast(LimiterPid, {unregister, QPid}). +unregister(undefined, _QPid) -> ok; +unregister(LimiterPid, QPid) -> gen_server:cast(LimiterPid, {unregister, QPid}). %%---------------------------------------------------------------------------- %% gen_server callbacks |