summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-08-09 13:39:42 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2010-08-09 13:39:42 +0100
commitb25e6ea4d1e4c6c732e601409f1a04940f315dc3 (patch)
treedd685c2b9cbd1e06776a5a6bf97dc65fcb553c30 /src
parentffa1136ab323510eadc1313ab0b29a45a03d9484 (diff)
parent4754d837626559b51120596c2bcb86398b731a82 (diff)
downloadrabbitmq-server-git-b25e6ea4d1e4c6c732e601409f1a04940f315dc3.tar.gz
Merging bug 23095 into bug 15930
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_sup.erl18
-rw-r--r--src/supervisor2.erl8
2 files changed, 12 insertions, 14 deletions
diff --git a/src/rabbit_sup.erl b/src/rabbit_sup.erl
index 97613d17a5..bf29d5426e 100644
--- a/src/rabbit_sup.erl
+++ b/src/rabbit_sup.erl
@@ -31,7 +31,7 @@
-module(rabbit_sup).
--behaviour(supervisor).
+-behaviour(supervisor2).
-export([start_link/0, start_child/1, start_child/2, start_child/3,
start_restartable_child/1, start_restartable_child/2, stop_child/1]).
@@ -43,7 +43,7 @@
-define(SERVER, ?MODULE).
start_link() ->
- supervisor:start_link({local, ?SERVER}, ?MODULE, []).
+ supervisor2:start_link({local, ?SERVER}, ?MODULE, []).
start_child(Mod) ->
start_child(Mod, []).
@@ -52,9 +52,9 @@ start_child(Mod, Args) ->
start_child(Mod, Mod, Args).
start_child(ChildId, Mod, Args) ->
- {ok, _} = supervisor:start_child(?SERVER,
- {ChildId, {Mod, start_link, Args},
- transient, ?MAX_WAIT, worker, [Mod]}),
+ {ok, _} = supervisor2:start_child(?SERVER,
+ {ChildId, {Mod, start_link, Args},
+ intrinsic, ?MAX_WAIT, worker, [Mod]}),
ok.
start_restartable_child(Mod) ->
@@ -62,16 +62,16 @@ start_restartable_child(Mod) ->
start_restartable_child(Mod, Args) ->
Name = list_to_atom(atom_to_list(Mod) ++ "_sup"),
- {ok, _} = supervisor:start_child(
+ {ok, _} = supervisor2:start_child(
?SERVER,
{Name, {rabbit_restartable_sup, start_link,
[Name, {Mod, start_link, Args}]},
- transient, infinity, supervisor, [rabbit_restartable_sup]}),
+ intrinsic, infinity, supervisor, [rabbit_restartable_sup]}),
ok.
stop_child(ChildId) ->
- case supervisor:terminate_child(?SERVER, ChildId) of
- ok -> supervisor:delete_child(?SERVER, ChildId);
+ case supervisor2:terminate_child(?SERVER, ChildId) of
+ ok -> supervisor2:delete_child(?SERVER, ChildId);
E -> E
end.
diff --git a/src/supervisor2.erl b/src/supervisor2.erl
index 682faba15e..c373f2a47c 100644
--- a/src/supervisor2.erl
+++ b/src/supervisor2.erl
@@ -533,12 +533,10 @@ restart_child(Pid, Reason, State) ->
{ok, State}
end.
-do_restart(intrinsic, Reason, Child, State) ->
+do_restart(intrinsic, Reason, Child, State = #state{name = Name}) ->
case Reason of
- normal -> ok;
- shutdown -> ok;
- {shutdown, _Term} -> ok;
- _ -> report_error(child_terminated, Reason, Child, State#state.name)
+ normal -> ok;
+ _ -> report_error(child_terminated, Reason, Child, Name)
end,
{shutdown, remove_child(Child, State)};
do_restart({RestartType, Delay}, Reason, Child, State) ->