Commit 373dbcb3 authored by Dmitriy Vyukov's avatar Dmitriy Vyukov

io/ioutil: fix data race under the race detector

See issue 3970 (it's already marked as Fixed).

R=rsc, minux.ma
CC=golang-dev
https://golang.org/cl/6624059
parent 59b87453
// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build !race
package ioutil
var blackHoleBuf = make([]byte, 8192)
func blackHole() []byte {
return blackHoleBuf
}
// Copyright 2012 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build race
package ioutil
// Replaces the normal fast implementation with slower but formally correct one.
func blackHole() []byte {
return make([]byte, 8192)
}
......@@ -130,12 +130,11 @@ func (devNull) Write(p []byte) (int, error) {
return len(p), nil
}
var blackHole = make([]byte, 8192)
func (devNull) ReadFrom(r io.Reader) (n int64, err error) {
buf := blackHole()
readSize := 0
for {
readSize, err = r.Read(blackHole)
readSize, err = r.Read(buf)
n += int64(readSize)
if err != nil {
if err == io.EOF {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment