fix race condition for SetHasAllValidationCommits; "binary" log

filtering
This commit is contained in:
Jae Kwon
2014-12-30 14:45:26 -08:00
parent 69903e5bc2
commit 16c80fd65f
2 changed files with 16 additions and 3 deletions

View File

@ -421,7 +421,7 @@ OUTER_LOOP:
continue OUTER_LOOP
} else {
log.Debug("No commits to send", "ours", validation.BitArray(), "theirs", prs.Commits)
ps.SetHasAllValidationCommits()
ps.SetHasAllValidationCommits(prs.Height)
}
}
@ -569,10 +569,12 @@ func (ps *PeerState) setHasVote(height uint, round uint, type_ byte, index uint)
// When catching up, this helps keep track of whether
// we should send more commit votes from the block (validation) store
func (ps *PeerState) SetHasAllValidationCommits() {
func (ps *PeerState) SetHasAllValidationCommits(height uint) {
ps.mtx.Lock()
defer ps.mtx.Unlock()
ps.HasAllValidationCommits = true
if ps.Height == height {
ps.HasAllValidationCommits = true
}
}
func (ps *PeerState) ApplyNewRoundStepMessage(msg *NewRoundStepMessage, rs *RoundState) {