add conditions for state for loops

pull/820/head
Xiang Li 2014-01-28 10:58:23 -05:00
parent 56d6c1755c
commit 029b60f530
1 changed files with 4 additions and 25 deletions

View File

@ -608,7 +608,7 @@ func (s *server) followerLoop() {
electionTimeout := s.ElectionTimeout()
timeoutChan := afterBetween(s.ElectionTimeout(), s.ElectionTimeout()*2)
for {
for s.State() == Follower {
var err error
update := false
select {
@ -663,11 +663,6 @@ func (s *server) followerLoop() {
since = time.Now()
timeoutChan = afterBetween(s.ElectionTimeout(), s.ElectionTimeout()*2)
}
// Exit loop on state change.
if s.State() != Follower {
break
}
}
}
@ -682,7 +677,7 @@ func (s *server) candidateLoop() {
s.DispatchEvent(newEvent(LeaderChangeEventType, s.leader, prevLeader))
}
for {
for s.State() == Candidate {
// Increment current term, vote for self.
s.currentTerm++
s.votedFor = s.name
@ -750,12 +745,6 @@ func (s *server) candidateLoop() {
break
}
}
// break when we are not candidate
if s.State() != Candidate {
break
}
// continue when timeout happened
}
}
@ -779,7 +768,7 @@ func (s *server) leaderLoop() {
go s.Do(NOPCommand{})
// Begin to collect response from followers
for {
for s.State() == Leader {
var err error
select {
case e := <-s.c:
@ -806,11 +795,6 @@ func (s *server) leaderLoop() {
// Callback to event.
e.c <- err
}
// Exit loop on state change.
if s.State() != Leader {
break
}
}
s.syncedPeer = nil
@ -819,7 +803,7 @@ func (s *server) leaderLoop() {
func (s *server) snapshotLoop() {
s.setState(Snapshotting)
for {
for s.State() == Snapshotting {
var err error
e := <-s.c
@ -840,11 +824,6 @@ func (s *server) snapshotLoop() {
}
// Callback to event.
e.c <- err
// Exit loop on state change.
if s.State() != Snapshotting {
break
}
}
}