]> Cypherpunks repositories - gostls13.git/commitdiff
net: fix race in test
authorBrad Fitzpatrick <bradfitz@golang.org>
Thu, 17 Dec 2015 16:50:03 +0000 (16:50 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 17 Dec 2015 17:26:30 +0000 (17:26 +0000)
Fixes race builders, broken in https://golang.org/cl/16953

Change-Id: Id61171672b69d0ca412de4b44bf2c598fe557906
Reviewed-on: https://go-review.googlesource.com/17936
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
src/net/dnsclient_unix_test.go

index 95c14df52e51184734c56ce8f974794ad9a6d344..5ef02a1477034e760cd9656a7a9289c823201420 100644 (file)
@@ -515,7 +515,8 @@ func BenchmarkGoLookupIPWithBrokenNameServer(b *testing.B) {
 
 type fakeDNSConn struct {
        // last query
-       q *dnsMsg
+       qmu sync.Mutex // guards q
+       q   *dnsMsg
        // reply handler
        rh func(*dnsMsg) (*dnsMsg, error)
 }
@@ -533,10 +534,15 @@ func (f *fakeDNSConn) SetDeadline(time.Time) error {
 }
 
 func (f *fakeDNSConn) writeDNSQuery(q *dnsMsg) error {
+       f.qmu.Lock()
+       defer f.qmu.Unlock()
        f.q = q
        return nil
 }
 
 func (f *fakeDNSConn) readDNSResponse() (*dnsMsg, error) {
-       return f.rh(f.q)
+       f.qmu.Lock()
+       q := f.q
+       f.qmu.Unlock()
+       return f.rh(q)
 }