summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2010-03-08 15:34:35 +0000
committerMatthew Sackman <matthew@lshift.net>2010-03-08 15:34:35 +0000
commit9102bfe2a6b96d9f560cb20713c888dffee419ae (patch)
tree1d2d187f6557855dd0efe1936f8253a0d8a2f7a3
parentdf8cc2e5b905df8624d5e9d320230912d83d459e (diff)
downloadrabbitmq-server-bug22454.tar.gz
Reworked the supervision heirarchy againbug22454
-rw-r--r--src/rabbit.erl8
-rw-r--r--src/rabbit_alarm.erl2
-rw-r--r--src/rabbit_amqqueue.erl2
-rw-r--r--src/rabbit_networking.erl8
-rw-r--r--src/rabbit_restartable_sup.erl20
-rw-r--r--src/rabbit_sup.erl20
6 files changed, 30 insertions, 30 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 94d852f9..ee39100a 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -61,7 +61,7 @@
-rabbit_boot_step({rabbit_log,
[{description, "logging server"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_log]}},
{enables, kernel_ready}]}).
@@ -87,14 +87,14 @@
-rabbit_boot_step({rabbit_router,
[{description, "cluster router"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_router]}},
{requires, kernel_ready},
{enables, core_initialized}]}).
-rabbit_boot_step({rabbit_node_monitor,
[{description, "node monitor"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_node_monitor]}},
{requires, kernel_ready},
{requires, rabbit_amqqueue_sup},
@@ -124,7 +124,7 @@
-rabbit_boot_step({guid_generator,
[{description, "guid generator"},
- {mfa, {rabbit_restartable_sup, start_child,
+ {mfa, {rabbit_sup, start_restartable_child,
[rabbit_guid]}},
{requires, persister},
{enables, routing_ready}]}).
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl
index d5d245aa..e5559b46 100644
--- a/src/rabbit_alarm.erl
+++ b/src/rabbit_alarm.erl
@@ -60,7 +60,7 @@ start() ->
true ->
ok;
false ->
- rabbit_restartable_sup:start_child(vm_memory_monitor,
+ rabbit_sup:start_restartable_child(vm_memory_monitor,
[MemoryWatermark])
end,
ok.
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index f1e5e14b..ceec00fd 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -119,7 +119,7 @@
start() ->
{ok,_} = supervisor:start_child(
- rabbit_restartable_sup,
+ rabbit_sup,
{rabbit_amqqueue_sup,
{rabbit_amqqueue_sup, start_link, []},
transient, infinity, supervisor, [rabbit_amqqueue_sup]}),
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index 4d319706..7978573d 100644
--- a/src/rabbit_networking.erl
+++ b/src/rabbit_networking.erl
@@ -109,7 +109,7 @@ boot_ssl() ->
start() ->
{ok,_} = supervisor:start_child(
- rabbit_restartable_sup,
+ rabbit_sup,
{rabbit_tcp_client_sup,
{tcp_client_sup, start_link,
[{local, rabbit_tcp_client_sup},
@@ -156,7 +156,7 @@ start_listener(Host, Port, Label, OnConnect) ->
{IPAddress, Name} =
check_tcp_listener_address(rabbit_tcp_listener_sup, Host, Port),
{ok,_} = supervisor:start_child(
- rabbit_restartable_sup,
+ rabbit_sup,
{Name,
{tcp_listener_sup, start_link,
[IPAddress, Port, ?RABBIT_TCP_OPTS ,
@@ -169,8 +169,8 @@ start_listener(Host, Port, Label, OnConnect) ->
stop_tcp_listener(Host, Port) ->
IPAddress = getaddr(Host),
Name = rabbit_misc:tcp_name(rabbit_tcp_listener_sup, IPAddress, Port),
- ok = supervisor:terminate_child(rabbit_restartable_sup, Name),
- ok = supervisor:delete_child(rabbit_restartable_sup, Name),
+ ok = supervisor:terminate_child(rabbit_sup, Name),
+ ok = supervisor:delete_child(rabbit_sup, Name),
ok.
tcp_listener_started(IPAddress, Port) ->
diff --git a/src/rabbit_restartable_sup.erl b/src/rabbit_restartable_sup.erl
index bc6f40da..2813fd15 100644
--- a/src/rabbit_restartable_sup.erl
+++ b/src/rabbit_restartable_sup.erl
@@ -33,22 +33,12 @@
-behaviour(supervisor).
--export([start_link/0, start_child/1, start_child/2]).
+-export([start_link/2]).
-export([init/1]).
--define(SERVER, ?MODULE).
+start_link(Name, {_M, _F, _A} = Fun) ->
+ supervisor:start_link({local, Name}, ?MODULE, [Fun]).
-start_link() ->
- supervisor:start_link({local, ?SERVER}, ?MODULE, []).
-
-start_child(Mod) ->
- start_child(Mod, []).
-
-start_child(Mod, Args) ->
- {ok, _} = supervisor:start_child(?SERVER, {Mod, {Mod, start_link, Args},
- transient, 100, worker, [Mod]}),
- ok.
-
-init([]) ->
- {ok, {{one_for_one, 10, 10}, []}}.
+init([{Mod, _F, _A} = Fun]) ->
+ {ok, {{one_for_one, 10, 10}, [{Mod, Fun, transient, 100, worker, [Mod]}]}}.
diff --git a/src/rabbit_sup.erl b/src/rabbit_sup.erl
index 7525db41..c3d1037e 100644
--- a/src/rabbit_sup.erl
+++ b/src/rabbit_sup.erl
@@ -33,7 +33,8 @@
-behaviour(supervisor).
--export([start_link/0, start_child/1, start_child/2]).
+-export([start_link/0, start_child/1, start_child/2,
+ start_restartable_child/1, start_restartable_child/2]).
-export([init/1]).
@@ -50,8 +51,17 @@ start_child(Mod, Args) ->
transient, 100, worker, [Mod]}),
ok.
+start_restartable_child(Mod) ->
+ start_restartable_child(Mod, []).
+
+start_restartable_child(Mod, Args) ->
+ Name = list_to_atom(atom_to_list(Mod) ++ "_sup"),
+ {ok, _} = supervisor:start_child(
+ ?SERVER,
+ {Name, {rabbit_restartable_sup, start_link,
+ [Name, {Mod, start_link, Args}]},
+ transient, infinity, supervisor, [rabbit_restartable_sup]}),
+ ok.
+
init([]) ->
- {ok, {{one_for_all, 0, 1},
- [{rabbit_restartable_sup,
- {rabbit_restartable_sup, start_link, []},
- transient, infinity, supervisor, [rabbit_restartable_sup]}]}}.
+ {ok, {{one_for_all, 0, 1}, []}}.