diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2012-05-16 17:21:29 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-05-16 17:21:29 +0100 |
commit | 7e9817d5738e4014704536b30a9698fb814344dc (patch) | |
tree | b9bcaa16e9dd4a1b73cc93c12ddc242de3a94111 | |
parent | 9a09377dab3b69d61b6f7f851c9a4526b46cd18d (diff) | |
download | rabbitmq-server-7e9817d5738e4014704536b30a9698fb814344dc.tar.gz |
expand rabbit_sup API with starting of children that are supervisors
and use that API throughout the code where appropriate
-rw-r--r-- | src/rabbit.erl | 3 | ||||
-rw-r--r-- | src/rabbit_direct.erl | 12 | ||||
-rw-r--r-- | src/rabbit_mirror_queue_slave_sup.erl | 11 | ||||
-rw-r--r-- | src/rabbit_networking.erl | 13 | ||||
-rw-r--r-- | src/rabbit_sup.erl | 15 |
5 files changed, 25 insertions, 29 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index ea9731b6..e48176f3 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -143,7 +143,8 @@ -rabbit_boot_step({mirror_queue_slave_sup, [{description, "mirror queue slave sup"}, - {mfa, {rabbit_mirror_queue_slave_sup, start, []}}, + {mfa, {rabbit_sup, start_supervisor_child, + [rabbit_mirror_queue_slave_sup]}}, {requires, recovery}, {enables, routing_ready}]}). diff --git a/src/rabbit_direct.erl b/src/rabbit_direct.erl index a471d282..c07ad832 100644 --- a/src/rabbit_direct.erl +++ b/src/rabbit_direct.erl @@ -47,16 +47,10 @@ %%---------------------------------------------------------------------------- -boot() -> - {ok, _} = - supervisor2:start_child( - rabbit_sup, - {rabbit_direct_client_sup, - {rabbit_client_sup, start_link, +boot() -> rabbit_sup:start_supervisor_child( + rabbit_direct_client_sup, rabbit_client_sup, [{local, rabbit_direct_client_sup}, - {rabbit_channel_sup, start_link, []}]}, - transient, infinity, supervisor, [rabbit_client_sup]}), - ok. + {rabbit_channel_sup, start_link, []}]). force_event_refresh() -> [Pid ! force_event_refresh || Pid<- list()], diff --git a/src/rabbit_mirror_queue_slave_sup.erl b/src/rabbit_mirror_queue_slave_sup.erl index b2e83803..a2034876 100644 --- a/src/rabbit_mirror_queue_slave_sup.erl +++ b/src/rabbit_mirror_queue_slave_sup.erl @@ -18,7 +18,7 @@ -behaviour(supervisor2). --export([start/0, start_link/0, start_child/2]). +-export([start_link/0, start_child/2]). -export([init/1]). @@ -26,15 +26,6 @@ -define(SERVER, ?MODULE). -start() -> - {ok, _} = - supervisor2:start_child( - rabbit_sup, - {rabbit_mirror_queue_slave_sup, - {rabbit_mirror_queue_slave_sup, start_link, []}, - transient, infinity, supervisor, [rabbit_mirror_queue_slave_sup]}), - ok. - start_link() -> supervisor2:start_link({local, ?SERVER}, ?MODULE, []). start_child(Node, Args) -> supervisor2:start_child({?SERVER, Node}, Args). diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl index f0c75d23..78deea97 100644 --- a/src/rabbit_networking.erl +++ b/src/rabbit_networking.erl @@ -136,15 +136,10 @@ boot_ssl() -> ok end. -start() -> - {ok,_} = supervisor2:start_child( - rabbit_sup, - {rabbit_tcp_client_sup, - {rabbit_client_sup, start_link, - [{local, rabbit_tcp_client_sup}, - {rabbit_connection_sup,start_link,[]}]}, - transient, infinity, supervisor, [rabbit_client_sup]}), - ok. +start() -> rabbit_sup:start_supervisor_child( + rabbit_tcp_client_sup, rabbit_client_sup, + [{local, rabbit_tcp_client_sup}, + {rabbit_connection_sup,start_link,[]}]). ensure_ssl() -> ok = rabbit_misc:start_applications([crypto, public_key, ssl]), diff --git a/src/rabbit_sup.erl b/src/rabbit_sup.erl index ecc4d816..f142d233 100644 --- a/src/rabbit_sup.erl +++ b/src/rabbit_sup.erl @@ -19,6 +19,8 @@ -behaviour(supervisor). -export([start_link/0, start_child/1, start_child/2, start_child/3, + start_supervisor_child/1, start_supervisor_child/2, + start_supervisor_child/3, start_restartable_child/1, start_restartable_child/2, stop_child/1]). -export([init/1]). @@ -35,6 +37,9 @@ -spec(start_child/1 :: (atom()) -> 'ok'). -spec(start_child/2 :: (atom(), [any()]) -> 'ok'). -spec(start_child/3 :: (atom(), atom(), [any()]) -> 'ok'). +-spec(start_supervisor_child/1 :: (atom()) -> 'ok'). +-spec(start_supervisor_child/2 :: (atom(), [any()]) -> 'ok'). +-spec(start_supervisor_child/3 :: (atom(), atom(), [any()]) -> 'ok'). -spec(start_restartable_child/1 :: (atom()) -> 'ok'). -spec(start_restartable_child/2 :: (atom(), [any()]) -> 'ok'). -spec(stop_child/1 :: (atom()) -> rabbit_types:ok_or_error(any())). @@ -55,6 +60,16 @@ start_child(ChildId, Mod, Args) -> {ChildId, {Mod, start_link, Args}, transient, ?MAX_WAIT, worker, [Mod]})). +start_supervisor_child(Mod) -> start_supervisor_child(Mod, []). + +start_supervisor_child(Mod, Args) -> start_supervisor_child(Mod, Mod, Args). + +start_supervisor_child(ChildId, Mod, Args) -> + child_reply(supervisor:start_child( + ?SERVER, + {ChildId, {Mod, start_link, Args}, + transient, infinity, supervisor, [Mod]})). + start_restartable_child(Mod) -> start_restartable_child(Mod, []). start_restartable_child(Mod, Args) -> |