Переглянути джерело

raft: add a newReady helper function

Xiang Li 11 роки тому
батько
коміт
df259e5878
1 змінених файлів з 16 додано та 12 видалено
  1. 16 12
      raft/node.go

+ 16 - 12
raft/node.go

@@ -103,18 +103,7 @@ func (n *Node) run(r *raft) {
 			}
 		}
 
-		rd := Ready{
-			Entries:          r.raftLog.unstableEnts(),
-			CommittedEntries: r.raftLog.nextEnts(),
-			Messages:         r.msgs,
-		}
-
-		if isStateEqual(r.State, prevSt) {
-			rd.State = emptyState
-		} else {
-			rd.State = r.State
-		}
-
+		rd := newReady(r, prevSt)
 		if rd.containsUpdates() {
 			readyc = n.readyc
 		} else {
@@ -182,3 +171,18 @@ func (n *Node) Step(ctx context.Context, m pb.Message) error {
 func (n *Node) Ready() <-chan Ready {
 	return n.readyc
 }
+
+func newReady(r *raft, prev pb.State) Ready {
+	rd := Ready{
+		Entries:          r.raftLog.unstableEnts(),
+		CommittedEntries: r.raftLog.nextEnts(),
+		Messages:         r.msgs,
+	}
+
+	if isStateEqual(r.State, prev) {
+		rd.State = emptyState
+	} else {
+		rd.State = r.State
+	}
+	return rd
+}