diff options
author | Brad Fitzpatrick <bradfitz@golang.org> | 2015-12-17 16:50:03 +0000 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2015-12-17 17:26:30 +0000 |
commit | 3ad3d5931be1aa1fd1b59874eebb40e4b22e2206 (patch) | |
tree | e8c9e168ba76918980bef2ffda51e2dcaa346ea2 | |
parent | 0d641c754f73a71ffd21a9f9d58ea3fe38d727b4 (diff) | |
download | go-3ad3d5931be1aa1fd1b59874eebb40e4b22e2206.tar.gz go-3ad3d5931be1aa1fd1b59874eebb40e4b22e2206.zip |
net: fix race in test
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>
-rw-r--r-- | src/net/dnsclient_unix_test.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go index 95c14df52e..5ef02a1477 100644 --- a/src/net/dnsclient_unix_test.go +++ b/src/net/dnsclient_unix_test.go @@ -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) } |