diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2013-04-19 11:44:03 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2013-04-19 11:44:03 +0100 |
commit | ec0cf0fc5c621500854125fd41631414192d4d53 (patch) | |
tree | 10db665fa129a6c4e2ae24284c6656c5b0c12974 | |
parent | 30421a90bf7a55e4be3c9cece04da44723fed70f (diff) | |
download | rabbitmq-server-ec0cf0fc5c621500854125fd41631414192d4d53.tar.gz |
Move to near the other system message and simplify.
-rw-r--r-- | src/gen_server2.erl | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/gen_server2.erl b/src/gen_server2.erl index ec67c04f..99fa272a 100644 --- a/src/gen_server2.erl +++ b/src/gen_server2.erl @@ -679,6 +679,10 @@ process_msg({system, From, Req}, %% gen_server puts Hib on the end as the 7th arg, but that version %% of the fun seems not to be documented so leaving out for now. sys:handle_system_msg(Req, From, Parent, ?MODULE, Debug, GS2State); +process_msg({'$with_state', From, Fun}, + GS2State = #gs2_state{state = State}) -> + reply(From, catch Fun(State)), + loop(GS2State); process_msg({'EXIT', Parent, Reason} = Msg, GS2State = #gs2_state { parent = Parent }) -> terminate(Reason, Msg, GS2State); @@ -899,13 +903,6 @@ common_become(_Name, _Mod, _NState, [] = _Debug) -> common_become(Name, Mod, NState, Debug) -> sys:handle_debug(Debug, fun print_event/3, Name, {become, Mod, NState}). -handle_msg({'$with_state', From, Fun}, - GS2State = #gs2_state{state = State, - name = Name, - debug = Debug}) -> - Debug1 = common_reply(Name, From, catch Fun(State), State, Debug), - loop(GS2State #gs2_state { state = State, - debug = Debug1 }); handle_msg({'$gen_call', From, Msg}, GS2State = #gs2_state { mod = Mod, state = State, name = Name, |