diff options
author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-08-11 20:10:35 +0100 |
---|---|---|
committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-08-11 20:10:35 +0100 |
commit | 24870f5b7fe8010ffd49a0b318a8a1750538d655 (patch) | |
tree | 8fed31e24ec9205f834f8f2fa39a4e0a873bc1fa | |
parent | 6b321d0e86123393a4d530948915eb7044f75934 (diff) | |
download | rabbitmq-server-24870f5b7fe8010ffd49a0b318a8a1750538d655.tar.gz |
start the limiter programatically
Also, how do you name a function that returns a list 'find_child'
(singular)?
-rw-r--r-- | src/rabbit_channel_sup.erl | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/rabbit_channel_sup.erl b/src/rabbit_channel_sup.erl index a217a6c4..f31cdd17 100644 --- a/src/rabbit_channel_sup.erl +++ b/src/rabbit_channel_sup.erl @@ -54,39 +54,34 @@ start_link({tcp, Sock, Channel, FrameMax, ReaderPid, Protocol, User, VHost, {writer, {rabbit_writer, start_link, [Sock, Channel, FrameMax, Protocol, ReaderPid]}, intrinsic, ?MAX_WAIT, worker, [rabbit_writer]}), - Limiter = start_limiter(SupPid), + [Limiter] = supervisor2:find_child(SupPid, limiter), {ok, ChannelPid} = supervisor2:start_child( SupPid, {channel, {rabbit_channel, start_link, [Channel, ReaderPid, WriterPid, ReaderPid, Protocol, - User, VHost, Capabilities, Collector, Limiter]}, + User, VHost, Capabilities, Collector, + rabbit_limiter:make_token(Limiter)]}, intrinsic, ?MAX_WAIT, worker, [rabbit_channel]}), {ok, AState} = rabbit_command_assembler:init(Protocol), {ok, SupPid, {ChannelPid, AState}}; start_link({direct, Channel, ClientChannelPid, ConnPid, Protocol, User, VHost, Capabilities, Collector}) -> {ok, SupPid} = supervisor2:start_link(?MODULE, []), - Limiter = start_limiter(SupPid), + [Limiter] = supervisor2:find_child(SupPid, limiter), {ok, ChannelPid} = supervisor2:start_child( SupPid, {channel, {rabbit_channel, start_link, [Channel, ClientChannelPid, ClientChannelPid, ConnPid, Protocol, User, VHost, Capabilities, Collector, - Limiter]}, + rabbit_limiter:make_token(Limiter)]}, intrinsic, ?MAX_WAIT, worker, [rabbit_channel]}), {ok, SupPid, {ChannelPid, none}}. %%---------------------------------------------------------------------------- init([]) -> - {ok, {{one_for_all, 0, 1}, []}}. - -start_limiter(SupPid) -> - {ok, Pid} = - supervisor2:start_child( - SupPid, - {limiter, {rabbit_limiter, start_link, []}, - transient, ?MAX_WAIT, worker, [rabbit_limiter]}), - rabbit_limiter:make_token(Pid). + {ok, {{one_for_all, 0, 1}, + [{limiter, {rabbit_limiter, start_link, []}, + transient, ?MAX_WAIT, worker, [rabbit_limiter]}]}}. |