aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/internal/poll/fd_windows.go2
-rw-r--r--src/net/udpsock_test.go7
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")