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 | a937859367923e5e7c38bd3c1bf92e8c83f5d252 (patch) | |
| tree | 10db665fa129a6c4e2ae24284c6656c5b0c12974 /src | |
| parent | 8470077e5f74807fb65f3a3f6ab672e1c0fdafa0 (diff) | |
| download | rabbitmq-server-git-a937859367923e5e7c38bd3c1bf92e8c83f5d252.tar.gz | |
Move to near the other system message and simplify.
Diffstat (limited to 'src')
| -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 ec67c04f59..99fa272a61 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, |
