diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/internal/poll/fd_windows.go | 2 | ||||
| -rw-r--r-- | src/net/udpsock_test.go | 7 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/internal/poll/fd_windows.go b/src/internal/poll/fd_windows.go index f8d41bafd1..23500d3e39 100644 --- a/src/internal/poll/fd_windows.go +++ b/src/internal/poll/fd_windows.go @@ -196,6 +196,8 @@ func freeWSAMsg(msg *windows.WSAMsg) { // Clear pointers to buffers so they can be released by garbage collector. msg.Buffers.Len = 0 msg.Buffers.Buf = nil + msg.Control.Len = 0 + msg.Control.Buf = nil wsaMsgPool.Put(msg) } diff --git a/src/net/udpsock_test.go b/src/net/udpsock_test.go index 7b4bf328e2..a79e9f83c1 100644 --- a/src/net/udpsock_test.go +++ b/src/net/udpsock_test.go @@ -8,6 +8,7 @@ import ( "errors" "fmt" "internal/asan" + "internal/race" "internal/testenv" "net/netip" "os" @@ -491,6 +492,12 @@ func TestAllocs(t *testing.T) { case "plan9", "js", "wasip1": // These implementations have not been optimized. t.Skipf("skipping on %v", runtime.GOOS) + case "windows": + if race.Enabled { + // The Windows implementation make use of sync.Pool, + // which randomly drops cached items when race is enabled. + t.Skip("skipping test in race") + } } if !testableNetwork("udp4") { t.Skipf("skipping: udp4 not available") |
