File tree Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Original file line number Diff line number Diff line change @@ -80,6 +80,7 @@ type Server struct {
8080 address string
8181 session sessionutil.SessionInterface
8282 sessionWatcher sessionutil.SessionWatcher
83+ sessionWatcherMu sync.Mutex
8384 kv kv.MetaKv
8485 idAllocator func () (int64 , error )
8586 metricsCacheManager * metricsinfo.MetricsCacheManager
@@ -594,9 +595,11 @@ func (s *Server) Stop() error {
594595 s .cluster .Stop ()
595596 }
596597
598+ s .sessionWatcherMu .Lock ()
597599 if s .sessionWatcher != nil {
598600 s .sessionWatcher .Stop ()
599601 }
602+ s .sessionWatcherMu .Unlock ()
600603
601604 s .cancel ()
602605 s .wg .Wait ()
@@ -644,7 +647,9 @@ func (s *Server) watchNodes(revision int64) {
644647 log := log .Ctx (s .ctx )
645648 defer s .wg .Done ()
646649
650+ s .sessionWatcherMu .Lock ()
647651 s .sessionWatcher = s .session .WatchServices (typeutil .QueryNodeRole , revision + 1 , s .rewatchNodes )
652+ s .sessionWatcherMu .Unlock ()
648653 for {
649654 select {
650655 case <- s .ctx .Done ():
You can’t perform that action at this time.
0 commit comments