private async Task CountVote(RequestVoteResponse requestVoteResponse) { if (ResponseContainsTermGreaterThanCurrentTerm(requestVoteResponse)) { BecomeFollowerAfterElectionFinishes(requestVoteResponse); } if (requestVoteResponse.VoteGranted) { lock (_lock) { _votesThisElection++; if (HasMajority()) { ShouldBecomeLeader(); } } } }
private bool ResponseContainsTermGreaterThanCurrentTerm(RequestVoteResponse requestVoteResponse) { return(requestVoteResponse.Term > CurrentState.CurrentTerm); }