File otp_src_18.3.4-lib-stdlib-supervisor-fix-inline.patch of Package erlang
diff -Ndurp otp_src_18.3.4/lib/stdlib/src/supervisor.erl otp_src_18.3.4-lib-stdlib-supervisor-fix-inline/lib/stdlib/src/supervisor.erl
--- otp_src_18.3.4/lib/stdlib/src/supervisor.erl 2016-06-13 14:21:38.000000000 +0300
+++ otp_src_18.3.4-lib-stdlib-supervisor-fix-inline/lib/stdlib/src/supervisor.erl 2016-06-17 01:20:36.808505687 +0300
@@ -491,7 +491,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,
@@ -519,7 +519,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}];
@@ -1113,17 +1113,20 @@ save_child(Child, #state{children = Chil
State#state{children = [Child |Children]}.
save_dynamic_child(temporary, Pid, _, #state{dynamics = Dynamics} = State) ->
- State#state{dynamics = ?SETS:add_element(Pid, dynamics_db(temporary, Dynamics))};
+ State#state{dynamics = ?SETS:add_element(Pid, dynamics_db_temporary(Dynamics))};
save_dynamic_child(RestartType, Pid, Args, #state{dynamics = Dynamics} = State) ->
State#state{dynamics = ?DICTS:store(Pid, Args, dynamics_db(RestartType, Dynamics))}.
-dynamics_db(temporary, undefined) ->
+dynamics_db_temporary(undefined) ->
?SETS:new();
-dynamics_db(_, undefined) ->
- ?DICTS:new();
-dynamics_db(_,Dynamics) ->
+dynamics_db_temporary(Dynamics) ->
Dynamics.
+dynamics_db(RType, undefined) when RType =/= temporary ->
+ ?DICTS:new();
+dynamics_db(_, Dynamics) ->
+ dynamics_db_temporary(Dynamics).
+
dynamic_child_args(Pid, Dynamics) ->
case ?SETS:is_set(Dynamics) of
true ->
@@ -1133,7 +1136,7 @@ dynamic_child_args(Pid, Dynamics) ->
end.
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 = 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)),