diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2014-07-15 10:32:46 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2014-07-15 10:32:46 +0100 |
| commit | cd7e12c7fa2d8aed6e84f6ddc9cde47584339a05 (patch) | |
| tree | 7045ac590e818472fe17e8144091dd890832b454 /src/gm.erl | |
| parent | 3f5f753966162d819aefc9a5e065ba9c5d58f7b8 (diff) | |
| download | rabbitmq-server-git-cd7e12c7fa2d8aed6e84f6ddc9cde47584339a05.tar.gz | |
Improve self-documentingness.
Diffstat (limited to 'src/gm.erl')
| -rw-r--r-- | src/gm.erl | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/gm.erl b/src/gm.erl index 5863ebc41f..3113f44906 100644 --- a/src/gm.erl +++ b/src/gm.erl @@ -619,13 +619,22 @@ handle_call({add_on_right, NewMember}, _From, members_state = MembersState1 }), handle_callback_result({Result, {ok, Group}, State1}). +%% add_on_right causes a catchup to be sent immediately from the left, +%% so we can never see this from the left neighbour. However, it's +%% possible for the right neighbour to send us a check_neighbours +%% immediately before that. We can't possibly handle it, but if we're +%% in this state we know a catchup is coming imminently anyway. So +%% just ignore it. +handle_cast({?TAG, _ReqVer, check_neighbours}, + State = #state { members_state = undefined }) -> + noreply(State); + handle_cast({?TAG, ReqVer, Msg}, State = #state { view = View, members_state = MembersState, group_name = GroupName }) -> {Result, State1} = - case needs_view_update( - ReqVer, View) andalso MembersState =/= undefined of + case needs_view_update(ReqVer, View) of true -> View1 = group_to_view(dirty_read_group(GroupName)), MemberState1 = remove_erased_members(MembersState, View1), change_view(View1, State #state { |
