diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2014-04-14 15:29:18 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2014-04-14 15:29:18 +0100 |
| commit | a84c01e0fabb44880dcad7ac593053e7f12e9de3 (patch) | |
| tree | 83d27ab2d0fd9595ae24cd204c8e1157faf36901 /src/gm.erl | |
| parent | 2af72fc2332394ffbbcf98b358cd1d8a353e791f (diff) | |
| parent | cc5c1404c97c0b9d22ce91bb50a1c33572a2794f (diff) | |
| download | rabbitmq-server-git-a84c01e0fabb44880dcad7ac593053e7f12e9de3.tar.gz | |
Merge bug26084
Diffstat (limited to 'src/gm.erl')
| -rw-r--r-- | src/gm.erl | 46 |
1 files changed, 17 insertions, 29 deletions
diff --git a/src/gm.erl b/src/gm.erl index 250a8de88c..2ed2fcf17c 100644 --- a/src/gm.erl +++ b/src/gm.erl @@ -706,9 +706,6 @@ handle_info({'DOWN', MRef, process, _Pid, Reason}, left = Left, right = Right, group_name = GroupName, - view = View, - module = Module, - callback_args = Args, confirms = Confirms, txn_executor = TxnFun }) -> Member = case {Left, Right} of @@ -722,24 +719,15 @@ handle_info({'DOWN', MRef, process, _Pid, Reason}, {_, {shutdown, ring_shutdown}} -> noreply(State); _ -> - View1 = - group_to_view(record_dead_member_in_group(Member, - GroupName, TxnFun)), - {Result, State2} = - case alive_view_members(View1) of - [Self] -> - {Result1, State1} = maybe_erase_aliases(State, View1), - {Result1, State1 #state { - members_state = blank_member_state(), - confirms = purge_confirms(Confirms) }}; - _ -> - %% here we won't be pointing out any deaths: - %% the concern is that there maybe births - %% which we'd otherwise miss. - {callback_view_changed(Args, Module, View, View1), - check_neighbours(State #state { view = View1 })} - end, - handle_callback_result({Result, State2}) + View1 = group_to_view(record_dead_member_in_group( + Member, GroupName, TxnFun)), + State1 = case alive_view_members(View1) of + [Self] -> State #state { + members_state = blank_member_state(), + confirms = purge_confirms(Confirms) }; + _ -> State + end, + handle_callback_result(maybe_erase_aliases(State1, View1)) end. @@ -1198,14 +1186,14 @@ maybe_erase_aliases(State = #state { self = Self, false -> Acc end end, {[], MembersState}, Aliases), - State1 = State #state { members_state = MembersState1 }, - case Erasable of - [] -> {ok, State1 #state { view = View }}; - _ -> View1 = group_to_view( - erase_members_in_group(Erasable, GroupName, TxnFun)), - {callback_view_changed(Args, Module, View0, View1), - check_neighbours(State1 #state { view = View1 })} - end. + View1 = case Erasable of + [] -> View; + _ -> group_to_view( + erase_members_in_group(Erasable, GroupName, TxnFun)) + end, + State1 = State #state { members_state = MembersState1, view = View1 }, + {callback_view_changed(Args, Module, View0, View1), + check_neighbours(State1)}. can_erase_view_member(Self, Self, _LA, _LP) -> false; can_erase_view_member(_Self, _Id, N, N) -> true; |
