|
|
@ -287,8 +287,8 @@ epmRpc(EpmSrv, Cmd) -> |
|
|
|
try gen:call(EpmSrv, '$epm_call', Cmd, infinity) of |
|
|
|
{ok, Reply} -> |
|
|
|
Reply |
|
|
|
catch Class:Reason -> |
|
|
|
erlang:raise(Class, {Reason, {?MODULE, call, [EpmSrv, Cmd, infinity]}}, ?STACKTRACE()) |
|
|
|
catch Class:Reason:S -> |
|
|
|
erlang:raise(Class, {Reason, {?MODULE, call, [EpmSrv, Cmd, infinity]}}, S) |
|
|
|
end. |
|
|
|
|
|
|
|
epmRpc(EpmSrv, Cmd, Timeout) -> |
|
|
@ -327,9 +327,9 @@ receiveIng(Parent, ServerName, HibernateAfterTimeout, EpmHers, Debug, IsHib) -> |
|
|
|
sys:handle_system_msg(Req, From, Parent, ?MODULE, Debug, {ServerName, HibernateAfterTimeout, EpmHers, IsHib}, IsHib); |
|
|
|
{'EXIT', Parent, Reason} -> |
|
|
|
terminate_server(Reason, Parent, ServerName, EpmHers); |
|
|
|
{'$gen_call', From, Request} -> |
|
|
|
{'$epm_call', From, Request} -> |
|
|
|
epmCallMsg(Parent, ServerName, HibernateAfterTimeout, EpmHers, Debug, From, Request); |
|
|
|
{'$gen_info', CmdOrEmpHandler, Event} -> |
|
|
|
{'$epm_info', CmdOrEmpHandler, Event} -> |
|
|
|
epmInfoMsg(Parent, ServerName, HibernateAfterTimeout, EpmHers, Debug, CmdOrEmpHandler, Event); |
|
|
|
Msg -> |
|
|
|
handleMsg(Parent, ServerName, HibernateAfterTimeout, EpmHers, Debug, Msg) |
|
|
@ -395,7 +395,7 @@ handleMsg(Parent, ServerName, HibernateAfterTimeout, EpmHers, Debug, Msg) -> |
|
|
|
NewDebug = ?SYS_DEBUG(Debug, ServerName, {in, Msg}), |
|
|
|
case Msg of |
|
|
|
{'EXIT', From, Reason} -> |
|
|
|
NewEpmHers = epmStopOne(EpmHers, From, Reason), |
|
|
|
NewEpmHers = epmStopOne(From, EpmHers, Reason), |
|
|
|
receiveIng(Parent, ServerName, HibernateAfterTimeout, NewEpmHers, NewDebug, false); |
|
|
|
{_From, Tag, stop} -> |
|
|
|
try terminate_server(normal, Parent, ServerName, EpmHers) |
|
|
@ -405,8 +405,11 @@ handleMsg(Parent, ServerName, HibernateAfterTimeout, EpmHers, Debug, Msg) -> |
|
|
|
{_From, Tag, get_modules} -> |
|
|
|
reply(Tag, get_modules(EpmHers)), |
|
|
|
receiveIng(Parent, ServerName, HibernateAfterTimeout, EpmHers, NewDebug, false); |
|
|
|
{_From, Tag, which_handlers} -> |
|
|
|
reply(Tag, maps:keys(EpmHers)), |
|
|
|
receiveIng(Parent, ServerName, HibernateAfterTimeout, EpmHers, NewDebug, false); |
|
|
|
_ -> |
|
|
|
{NewEpmHers, IsHib} = doNotify(EpmHers, handleInfo, EpmHers, false), |
|
|
|
{NewEpmHers, IsHib} = doNotify(EpmHers, handleInfo, Msg, false), |
|
|
|
loopEntry(Parent, ServerName, HibernateAfterTimeout, NewEpmHers, NewDebug, IsHib) |
|
|
|
end. |
|
|
|
|
|
|
@ -514,9 +517,9 @@ doEpmHandle(EpmHers, EpmId, Func, Event, From) -> |
|
|
|
catch |
|
|
|
throw:Ret -> |
|
|
|
handleEpmCR(Ret, EpmHers, EpmId, EpmHer, Event, From); |
|
|
|
C:R -> |
|
|
|
epmTerminate(EpmHer, {error, {C, R, ?STACKTRACE()}}, Event, crash), |
|
|
|
maps:remove(EpmId, EpmHer) |
|
|
|
C:R:S -> |
|
|
|
epmTerminate(EpmHer, {error, {C, R, S}}, Event, crash), |
|
|
|
maps:remove(EpmId, EpmHers) |
|
|
|
end; |
|
|
|
_ -> |
|
|
|
try_reply(From, {error, bad_module}), |
|
|
|