浏览代码

raft: prev should be set only when we sucessfully send out rd to the channel

Xiang Li 11 年之前
父节点
当前提交
0060c0749a
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      raft/node.go

+ 1 - 1
raft/node.go

@@ -106,7 +106,6 @@ func (n *Node) run(r *raft) {
 
 
 		if rd.containsUpdates(prev) {
 		if rd.containsUpdates(prev) {
 			readyc = n.readyc
 			readyc = n.readyc
-			prev = rd
 		} else {
 		} else {
 			readyc = nil
 			readyc = nil
 		}
 		}
@@ -122,6 +121,7 @@ func (n *Node) run(r *raft) {
 		case readyc <- rd:
 		case readyc <- rd:
 			r.raftLog.resetNextEnts()
 			r.raftLog.resetNextEnts()
 			r.raftLog.resetUnstable()
 			r.raftLog.resetUnstable()
+			prev = rd
 			r.msgs = nil
 			r.msgs = nil
 		case <-n.done:
 		case <-n.done:
 			return
 			return