浏览代码

lib/util: Fix potential data race (#6477)

Co-authored-by: greatroar <@>
greatroar 5 年之前
父节点
当前提交
d7a257b391
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      lib/util/utils.go

+ 5 - 1
lib/util/utils.go

@@ -255,8 +255,12 @@ func (s *service) Stop() {
 	default:
 		s.cancel()
 	}
+
+	// Cache s.stopped in a variable while we hold the mutex
+	// to prevent a data race with Serve's resetting it.
+	stopped := s.stopped
 	s.mut.Unlock()
-	<-s.stopped
+	<-stopped
 }
 
 func (s *service) Error() error {