From: Mikio Hara Date: Mon, 18 May 2015 08:27:33 +0000 (+0900) Subject: net: fix data race in TestSocket{Conn,PacketConn} X-Git-Tag: go1.5beta1~518 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=17177a0daa7d08c7031fe10b9be8d070db5fe278;p=gostls13.git net: fix data race in TestSocket{Conn,PacketConn} Fixes #10891. Change-Id: Ie432c9c5520ac29cea8fe6452628ec467567eea5 Reviewed-on: https://go-review.googlesource.com/10194 Reviewed-by: Ian Lance Taylor --- diff --git a/src/net/file_bsd_test.go b/src/net/file_bsd_test.go index 6e6cf126ad..ffe3c612b4 100644 --- a/src/net/file_bsd_test.go +++ b/src/net/file_bsd_test.go @@ -49,8 +49,11 @@ func TestSocketConn(t *testing.T) { defer c.Close() const N = 3 + var wg sync.WaitGroup + wg.Add(2 * N) for i := 0; i < N; i++ { go func(i int) { + defer wg.Done() l := syscall.SizeofRtMsghdr + syscall.SizeofSockaddrInet4 if freebsd32o64 { l += syscall.SizeofRtMetrics // see syscall/route_freebsd_32bit.go @@ -73,8 +76,6 @@ func TestSocketConn(t *testing.T) { } }(i + 1) } - var wg sync.WaitGroup - wg.Add(N) for i := 0; i < N; i++ { go func() { defer wg.Done() diff --git a/src/net/file_linux_test.go b/src/net/file_linux_test.go index 58f74d2cc5..e04fea38f6 100644 --- a/src/net/file_linux_test.go +++ b/src/net/file_linux_test.go @@ -59,9 +59,12 @@ func TestSocketPacketConn(t *testing.T) { defer c.Close() const N = 3 + var wg sync.WaitGroup + wg.Add(2 * N) dst := &netlinkAddr{PID: 0} for i := 0; i < N; i++ { go func() { + defer wg.Done() l := syscall.NLMSG_HDRLEN + syscall.SizeofRtGenmsg b := make([]byte, l) *(*uint32)(unsafe.Pointer(&b[0:4][0])) = uint32(l) @@ -76,8 +79,6 @@ func TestSocketPacketConn(t *testing.T) { } }() } - var wg sync.WaitGroup - wg.Add(N) for i := 0; i < N; i++ { go func() { defer wg.Done()