|
@@ -12,7 +12,6 @@ import (
|
|
|
type node struct {
|
|
type node struct {
|
|
|
raft.Node
|
|
raft.Node
|
|
|
id uint64
|
|
id uint64
|
|
|
- paused bool
|
|
|
|
|
iface iface
|
|
iface iface
|
|
|
stopc chan struct{}
|
|
stopc chan struct{}
|
|
|
pausec chan bool
|
|
pausec chan bool
|
|
@@ -67,15 +66,12 @@ func (n *node) start() {
|
|
|
case p := <-n.pausec:
|
|
case p := <-n.pausec:
|
|
|
recvms := make([]raftpb.Message, 0)
|
|
recvms := make([]raftpb.Message, 0)
|
|
|
for p {
|
|
for p {
|
|
|
- // TODO: locking around paused?
|
|
|
|
|
- n.paused = true
|
|
|
|
|
select {
|
|
select {
|
|
|
case m := <-n.iface.recv():
|
|
case m := <-n.iface.recv():
|
|
|
recvms = append(recvms, m)
|
|
recvms = append(recvms, m)
|
|
|
case p = <-n.pausec:
|
|
case p = <-n.pausec:
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- n.paused = false
|
|
|
|
|
// step all pending messages
|
|
// step all pending messages
|
|
|
for _, m := range recvms {
|
|
for _, m := range recvms {
|
|
|
n.Step(context.TODO(), m)
|
|
n.Step(context.TODO(), m)
|
|
@@ -116,7 +112,3 @@ func (n *node) pause() {
|
|
|
func (n *node) resume() {
|
|
func (n *node) resume() {
|
|
|
n.pausec <- false
|
|
n.pausec <- false
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-func (n *node) isPaused() bool {
|
|
|
|
|
- return n.paused
|
|
|
|
|
-}
|
|
|