summaryrefslogtreecommitdiff
path: root/src/gm.erl
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2015-12-24 00:18:14 +0300
committerMichael Klishin <michael@clojurewerkz.org>2015-12-24 00:18:14 +0300
commit0e2dccc019071b9e52b86fce32f752c0fa78d1d5 (patch)
tree046555115616197a76b54869ac6714575a6bd5b5 /src/gm.erl
parentb2cf1238eea40f6a505a42d1bf10b75efcdff3bc (diff)
parent447e549860d6281b12bd9cbb2d11f04e741561aa (diff)
downloadrabbitmq-server-git-0e2dccc019071b9e52b86fce32f752c0fa78d1d5.tar.gz
Merge branch 'stable' into rabbitmq-server-485
Diffstat (limited to 'src/gm.erl')
-rw-r--r--src/gm.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gm.erl b/src/gm.erl
index 0ca0d8d9da..61a8f3eef7 100644
--- a/src/gm.erl
+++ b/src/gm.erl
@@ -551,8 +551,9 @@ forget_group(GroupName) ->
init([GroupName, Module, Args, TxnFun]) ->
put(process_name, {?MODULE, GroupName}),
- {MegaSecs, Secs, MicroSecs} = now(),
- _ = random:seed(MegaSecs, Secs, MicroSecs),
+ _ = random:seed(erlang:phash2([node()]),
+ time_compat:monotonic_time(),
+ time_compat:unique_integer()),
Self = make_member(GroupName),
gen_server2:cast(self(), join),
{ok, #state { self = Self,
@@ -712,6 +713,10 @@ handle_info(flush, State) ->
handle_info(timeout, State) ->
noreply(flush_broadcast_buffer(State));
+handle_info({'DOWN', _MRef, process, _Pid, _Reason},
+ State = #state { shutting_down =
+ {true, {shutdown, ring_shutdown}} }) ->
+ noreply(State);
handle_info({'DOWN', MRef, process, _Pid, Reason},
State = #state { self = Self,
left = Left,