diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2013-01-29 20:52:43 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2013-01-29 20:52:43 +0000 |
commit | d6f2922e91928b5191a5c5f1b3a6b320712b5ce3 (patch) | |
tree | 4f2fad1f4b778519bdd5941185c7e1d032af055b /libgo/go/io | |
parent | 91bfca59095b1cca9d4364996866848eaaf76c26 (diff) | |
download | gcc-d6f2922e91928b5191a5c5f1b3a6b320712b5ce3.zip gcc-d6f2922e91928b5191a5c5f1b3a6b320712b5ce3.tar.gz gcc-d6f2922e91928b5191a5c5f1b3a6b320712b5ce3.tar.bz2 |
libgo: Update Go library to master revision 15489/921e53d4863c.
From-SVN: r195560
Diffstat (limited to 'libgo/go/io')
-rw-r--r-- | libgo/go/io/ioutil/blackhole.go | 18 | ||||
-rw-r--r-- | libgo/go/io/ioutil/blackhole_race.go | 13 | ||||
-rw-r--r-- | libgo/go/io/ioutil/ioutil.go | 1 |
3 files changed, 15 insertions, 17 deletions
diff --git a/libgo/go/io/ioutil/blackhole.go b/libgo/go/io/ioutil/blackhole.go index c127bdb..101d2c1 100644 --- a/libgo/go/io/ioutil/blackhole.go +++ b/libgo/go/io/ioutil/blackhole.go @@ -2,12 +2,22 @@ // 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) +var blackHoleBuf = make(chan []byte, 1) func blackHole() []byte { - return blackHoleBuf + select { + case b := <-blackHoleBuf: + return b + default: + } + return make([]byte, 8192) +} + +func blackHolePut(p []byte) { + select { + case blackHoleBuf <- p: + default: + } } diff --git a/libgo/go/io/ioutil/blackhole_race.go b/libgo/go/io/ioutil/blackhole_race.go deleted file mode 100644 index eb640e0..0000000 --- a/libgo/go/io/ioutil/blackhole_race.go +++ /dev/null @@ -1,13 +0,0 @@ -// 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) -} diff --git a/libgo/go/io/ioutil/ioutil.go b/libgo/go/io/ioutil/ioutil.go index 31c7729..0eb146c 100644 --- a/libgo/go/io/ioutil/ioutil.go +++ b/libgo/go/io/ioutil/ioutil.go @@ -132,6 +132,7 @@ func (devNull) Write(p []byte) (int, error) { func (devNull) ReadFrom(r io.Reader) (n int64, err error) { buf := blackHole() + defer blackHolePut(buf) readSize := 0 for { readSize, err = r.Read(buf) |