summaryrefslogtreecommitdiff
path: root/src/gm.erl
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-04-14 15:29:18 +0100
committerSimon MacMullen <simon@rabbitmq.com>2014-04-14 15:29:18 +0100
commita84c01e0fabb44880dcad7ac593053e7f12e9de3 (patch)
tree83d27ab2d0fd9595ae24cd204c8e1157faf36901 /src/gm.erl
parent2af72fc2332394ffbbcf98b358cd1d8a353e791f (diff)
parentcc5c1404c97c0b9d22ce91bb50a1c33572a2794f (diff)
downloadrabbitmq-server-git-a84c01e0fabb44880dcad7ac593053e7f12e9de3.tar.gz
Merge bug26084
Diffstat (limited to 'src/gm.erl')
-rw-r--r--src/gm.erl46
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;