Jelajahi Sumber

context/ctxhttp: fix data race in tests

Change-Id: If36de4de2c4fac6767aa5490e6f3d8c15531dda6
Reviewed-on: https://go-review.googlesource.com/20275
Reviewed-by: Dave Day <djd@golang.org>
Brad Fitzpatrick 9 tahun lalu
induk
melakukan
a4bbce9fca
1 mengubah file dengan 5 tambahan dan 0 penghapusan
  1. 5 0
      context/ctxhttp/ctxhttp.go

+ 5 - 0
context/ctxhttp/ctxhttp.go

@@ -39,6 +39,11 @@ func Do(ctx context.Context, client *http.Client, req *http.Request) (*http.Resp
 	}
 	result := make(chan responseAndError, 1)
 
+	// Make local copies of test hooks closed over by goroutines below.
+	// Prevents data races in tests.
+	testHookDoReturned := testHookDoReturned
+	testHookDidBodyClose := testHookDidBodyClose
+
 	go func() {
 		resp, err := client.Do(req)
 		testHookDoReturned()