From e3dbfefbe09aac4f42ce8c37dac6569113f7b440 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Sun, 14 Dec 2014 20:00:32 -0800 Subject: [PATCH] sender: set strmSrv to nil after stoping it --- rafthttp/sender.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rafthttp/sender.go b/rafthttp/sender.go index 412849546..4b16ddbe7 100644 --- a/rafthttp/sender.go +++ b/rafthttp/sender.go @@ -98,10 +98,11 @@ type sender struct { strmCln *streamClient batcher *Batcher propBatcher *ProposalBatcher - strmSrv *streamServer - strmSrvMu sync.Mutex q chan []byte + strmSrvMu sync.Mutex + strmSrv *streamServer + // wait for the handling routines wg sync.WaitGroup @@ -124,6 +125,7 @@ func (s *sender) StartStreaming(w WriteFlusher, to types.ID, term uint64) (<-cha } // stop the existing one s.strmSrv.stop() + s.strmSrv = nil } s.strmSrv = startStreamServer(w, to, term, s.fs) return s.strmSrv.stopNotify(), nil @@ -199,6 +201,7 @@ func (s *sender) Stop() { s.strmSrvMu.Lock() if s.strmSrv != nil { s.strmSrv.stop() + s.strmSrv = nil } s.strmSrvMu.Unlock() if s.strmCln != nil {