merge bug24362

This commit is contained in:
Tim Watson 2012-05-17 10:52:37 +01:00
commit 01c6657cd1
5 changed files with 40 additions and 48 deletions

View File

@ -60,7 +60,8 @@
-rabbit_boot_step({worker_pool,
[{description, "worker pool"},
{mfa, {rabbit_sup, start_child, [worker_pool_sup]}},
{mfa, {rabbit_sup, start_supervisor_child,
[worker_pool_sup]}},
{requires, pre_boot},
{enables, external_infrastructure}]}).
@ -143,7 +144,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}]}).
@ -538,7 +540,7 @@ boot_error(Format, Args) ->
boot_delegate() ->
{ok, Count} = application:get_env(rabbit, delegate_count),
rabbit_sup:start_child(delegate_sup, [Count]).
rabbit_sup:start_supervisor_child(delegate_sup, [Count]).
recover() ->
rabbit_binding:recover(rabbit_exchange:recover(), rabbit_amqqueue:start()).

View File

@ -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()],

View File

@ -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,20 +26,9 @@
-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_link() ->
supervisor2:start_link({local, ?SERVER}, ?MODULE, []).
start_child(Node, Args) ->
supervisor2:start_child({?SERVER, Node}, Args).
start_child(Node, Args) -> supervisor2:start_child({?SERVER, Node}, Args).
init([]) ->
{ok, {{simple_one_for_one_terminate, 10, 10},

View File

@ -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]),

View File

@ -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]).
@ -33,7 +35,11 @@
-spec(start_link/0 :: () -> rabbit_types:ok_pid_or_error()).
-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())).
@ -42,22 +48,29 @@
%%----------------------------------------------------------------------------
start_link() ->
supervisor:start_link({local, ?SERVER}, ?MODULE, []).
start_link() -> supervisor:start_link({local, ?SERVER}, ?MODULE, []).
start_child(Mod) ->
start_child(Mod, []).
start_child(Mod) -> start_child(Mod, []).
start_child(Mod, Args) ->
start_child(Mod, Mod, Args).
start_child(Mod, Args) -> start_child(Mod, Mod, Args).
start_child(ChildId, Mod, Args) ->
child_reply(supervisor:start_child(?SERVER,
{ChildId, {Mod, start_link, Args},
transient, ?MAX_WAIT, worker, [Mod]})).
child_reply(supervisor:start_child(
?SERVER,
{ChildId, {Mod, start_link, Args},
transient, ?MAX_WAIT, worker, [Mod]})).
start_restartable_child(Mod) ->
start_restartable_child(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) ->
Name = list_to_atom(atom_to_list(Mod) ++ "_sup"),
@ -73,8 +86,7 @@ stop_child(ChildId) ->
E -> E
end.
init([]) ->
{ok, {{one_for_all, 0, 1}, []}}.
init([]) -> {ok, {{one_for_all, 0, 1}, []}}.
%%----------------------------------------------------------------------------