|
|
@ -33,7 +33,7 @@ |
|
|
|
, format_status/2 |
|
|
|
|
|
|
|
%% Internal callbacks |
|
|
|
, wakeupFromHib/9 |
|
|
|
, wakeupFromHib/8 |
|
|
|
|
|
|
|
%% logger callback |
|
|
|
, format_log/1, format_log/2, print_event/3 |
|
|
@ -275,9 +275,9 @@ enter_loop(Module, State, Opts, ServerName, Actions) -> |
|
|
|
loopEntry(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, #{}, State, listify(Actions)). |
|
|
|
|
|
|
|
%%% Internal callbacks |
|
|
|
wakeupFromHib(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, IsHib) -> |
|
|
|
wakeupFromHib(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState) -> |
|
|
|
%% 这是一条新消息,唤醒了我们,因此我们必须立即收到它 |
|
|
|
receiveIng(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, IsHib). |
|
|
|
receiveIng(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, true). |
|
|
|
|
|
|
|
loopEntry(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, Actions) -> |
|
|
|
case doParseAL(Actions, Name, Debug, false, false, Timers) of |
|
|
@ -290,7 +290,7 @@ loopEntry(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, C |
|
|
|
_ -> |
|
|
|
case IsHib of |
|
|
|
true -> |
|
|
|
proc_lib:hibernate(?MODULE, wakeupFromHib, [Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, NewTimers, CurState, IsHib]); |
|
|
|
proc_lib:hibernate(?MODULE, wakeupFromHib, [Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, NewTimers, CurState]); |
|
|
|
_ -> |
|
|
|
receiveIng(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, NewTimers, CurState, false) |
|
|
|
end |
|
|
@ -304,9 +304,9 @@ loopEntry(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, C |
|
|
|
system_continue(Parent, Debug, {Name, Module, GbhOpts, HibernateAfterTimeout, Timers, CurState, IsHib}) -> |
|
|
|
case IsHib of |
|
|
|
true -> |
|
|
|
proc_lib:hibernate(?MODULE, wakeupFromHib, [Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, IsHib]); |
|
|
|
proc_lib:hibernate(?MODULE, wakeupFromHib, [Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState]); |
|
|
|
_ -> |
|
|
|
receiveIng(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, IsHib) |
|
|
|
receiveIng(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, false) |
|
|
|
end. |
|
|
|
|
|
|
|
-spec system_terminate(_, _, _, [_]) -> no_return(). |
|
|
@ -741,7 +741,7 @@ receiveIng(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, |
|
|
|
matchInfoMsg(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, Msg) |
|
|
|
end |
|
|
|
after HibernateAfterTimeout -> |
|
|
|
proc_lib:hibernate(?MODULE, wakeupFromHib, [Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, IsHib]) |
|
|
|
proc_lib:hibernate(?MODULE, wakeupFromHib, [Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState]) |
|
|
|
end. |
|
|
|
|
|
|
|
matchCallMsg(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, From, Request) -> |
|
|
@ -810,6 +810,7 @@ matchMFA(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, Cu |
|
|
|
try_greply(From, {error, undef}), |
|
|
|
receiveIng(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, false); |
|
|
|
Class:Reason:Strace -> |
|
|
|
try_greply(From, {error, {inner_error, {Class, Reason, Stra ce}}}), |
|
|
|
innerError(Parent, Name, Module, GbhOpts, HibernateAfterTimeout, Debug, Timers, CurState, {mfa, MFA}, Class, Reason, Strace) |
|
|
|
end. |
|
|
|
|
|
|
|