Преглед на файлове

etcdserver: do not block on raft stopping

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
Gyu-Ho Lee преди 8 години
родител
ревизия
327f09fcb4
променени са 1 файла, в които са добавени 5 реда и са изтрити 1 реда
  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{}