diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2011-02-11 14:30:02 +0000 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-02-11 14:30:02 +0000 |
commit | 7f003e72158bff73080e23173d58b0290df30b0c (patch) | |
tree | f4fb848a52bf45d6b197cf960183d99b1d87a814 /src | |
parent | cd012caed4385b393ad612aabc12107419e13e15 (diff) | |
download | rabbitmq-server-7f003e72158bff73080e23173d58b0290df30b0c.tar.gz |
Add ability to change backing module dynamically
Diffstat (limited to 'src')
-rw-r--r-- | src/gen_server2.erl | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/gen_server2.erl b/src/gen_server2.erl index a637dddd..75d7ee8c 100644 --- a/src/gen_server2.erl +++ b/src/gen_server2.erl @@ -880,6 +880,22 @@ handle_common_reply(Reply, Msg, GS2State = #gs2_state { name = Name, loop(GS2State #gs2_state { state = NState, time = Time1, debug = Debug1 }); + {become, Mod, NState} -> + Debug1 = common_debug(Debug, fun print_event/3, Name, + {become, Mod, NState}), + loop(find_prioritisers( + GS2State #gs2_state { mod = Mod, + state = NState, + time = infinity, + debug = Debug1 })); + {become, Mod, NState, Time1} -> + Debug1 = common_debug(Debug, fun print_event/3, Name, + {become, Mod, NState}), + loop(find_prioritisers( + GS2State #gs2_state { mod = Mod, + state = NState, + time = Time1, + debug = Debug1 })); _ -> handle_common_termination(Reply, Msg, GS2State) end. |