소스 검색

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 {