summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-08-11 20:10:35 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-08-11 20:10:35 +0100
commit24870f5b7fe8010ffd49a0b318a8a1750538d655 (patch)
tree8fed31e24ec9205f834f8f2fa39a4e0a873bc1fa
parent6b321d0e86123393a4d530948915eb7044f75934 (diff)
downloadrabbitmq-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.erl21
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]}]}}.