Prechádzať zdrojové kódy

etcdserver: do not block on raft stopping

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
Gyu-Ho Lee 8 rokov pred
rodič
commit
327f09fcb4
1 zmenil súbory, kde vykonal 5 pridanie a 1 odobranie
  1. 5 1
      etcdserver/raft.go

+ 5 - 1
etcdserver/raft.go

@@ -260,7 +260,11 @@ func (r *raftNode) start(rh *raftReadyHandler) {
 						// blocks until 'applyAll' calls 'applyWait.Trigger'
 						// to be in sync with scheduled config-change job
 						// (assume raftDone has cap of 1)
-						raftDone <- struct{}{}
+						select {
+						case raftDone <- struct{}{}:
+						case <-r.stopped:
+							return
+						}
 					}
 
 					// gofail: var raftBeforeFollowerSend struct{}