File otp_src_19.0-lib-stdlib-supervisor-fix-inline.patch of Package erlang
diff -Ndurp otp_src_19.0/lib/stdlib/src/supervisor.erl otp_src_19.0-lib-stdlib-supervisor-fix-inline/lib/stdlib/src/supervisor.erl
--- otp_src_19.0/lib/stdlib/src/supervisor.erl 2016-06-21 16:12:42.000000000 +0300
+++ otp_src_19.0-lib-stdlib-supervisor-fix-inline/lib/stdlib/src/supervisor.erl 2016-06-23 15:03:42.502196344 +0300
@@ -498,7 +498,7 @@ handle_call(which_children, _From, #stat
modules = Mods}]} =
State) when ?is_simple(State) ->
Reply = lists:map(fun(Pid) -> {undefined, Pid, CT, Mods} end,
- ?SETS:to_list(dynamics_db(temporary, State#state.dynamics))),
+ ?SETS:to_list(dynamics_db_temporary(State#state.dynamics))),
{reply, Reply, State};
handle_call(which_children, _From, #state{children = [#child{restart_type = RType,
@@ -526,7 +526,7 @@ handle_call(which_children, _From, State
handle_call(count_children, _From, #state{children = [#child{restart_type = temporary,
child_type = CT}]} = State)
when ?is_simple(State) ->
- Sz = ?SETS:size(dynamics_db(temporary, State#state.dynamics)),
+ Sz = ?SETS:size(dynamics_db_temporary(State#state.dynamics)),
Reply = case CT of
supervisor -> [{specs, 1}, {active, Sz},
{supervisors, Sz}, {workers, 0}];
@@ -1116,19 +1116,22 @@ save_child(Child, #state{children = Chil
State#state{children = [Child |Children]}.
save_dynamic_child(temporary, Pid, _, #state{dynamics = Dynamics} = State) ->
- DynamicsDb = dynamics_db(temporary, Dynamics),
+ DynamicsDb = dynamics_db_temporary(Dynamics),
State#state{dynamics = {set, ?SETS:add_element(Pid, DynamicsDb)}};
save_dynamic_child(RestartType, Pid, Args, #state{dynamics = Dynamics} = State) ->
DynamicsDb = dynamics_db(RestartType, Dynamics),
State#state{dynamics = {dict, ?DICTS:store(Pid, Args, DynamicsDb)}}.
-dynamics_db(temporary, undefined) ->
+dynamics_db_temporary(undefined) ->
?SETS:new();
-dynamics_db(_, undefined) ->
- ?DICTS:new();
-dynamics_db(_, {_Tag, DynamicsDb}) ->
+dynamics_db_temporary({_Tag, DynamicsDb}) ->
DynamicsDb.
+dynamics_db(RType, undefined) when RType =/= temporary ->
+ ?DICTS:new();
+dynamics_db(_, Dynamics) ->
+ dynamics_db_temporary(Dynamics).
+
dynamic_child_args(_Pid, temporary, _DynamicsDb) ->
{ok, undefined};
dynamic_child_args(Pid, _RT, {dict, DynamicsDb}) ->
@@ -1137,7 +1140,7 @@ dynamic_child_args(_Pid, _RT, undefined)
error.
state_del_child(#child{pid = Pid, restart_type = temporary}, State) when ?is_simple(State) ->
- NDynamics = ?SETS:del_element(Pid, dynamics_db(temporary, State#state.dynamics)),
+ NDynamics = ?SETS:del_element(Pid, dynamics_db_temporary(State#state.dynamics)),
State#state{dynamics = {set, NDynamics}};
state_del_child(#child{pid = Pid, restart_type = RType}, State) when ?is_simple(State) ->
NDynamics = ?DICTS:erase(Pid, dynamics_db(RType, State#state.dynamics)),