aboutsummaryrefslogtreecommitdiff
path: root/src/io
diff options
context:
space:
mode:
Diffstat (limited to 'src/io')
-rw-r--r--src/io/io.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/io/io.go b/src/io/io.go
index 630ab73b56..946ea5b01c 100644
--- a/src/io/io.go
+++ b/src/io/io.go
@@ -14,6 +14,7 @@ package io
import (
"errors"
+ "internal/race"
"sync"
)
@@ -427,6 +428,14 @@ func copyBuffer(dst Writer, src Reader, buf []byte) (written int64, err error) {
nr, er := src.Read(buf)
if nr > 0 {
nw, ew := dst.Write(buf[0:nr])
+ if race.Enabled {
+ // Write over the buffer to help the race detector
+ // detect Write calls that access the buffer after returning.
+ // Use something other than zeros to make errors more obvious.
+ for i := range buf[:nr] {
+ buf[i] = 0xdd
+ }
+ }
if nw < 0 || nr < nw {
nw = 0
if ew == nil {