aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/os/exec/exec.go
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2014-04-15 17:36:25 -0700
committerBrad Fitzpatrick <bradfitz@golang.org>2014-04-15 17:36:25 -0700
commitfdade68379abdd9706881f4273e5f8cd9c0eb518 (patch)
tree6511bbe6d9d6871975f03a634d5abaede13d0e07 /src/pkg/os/exec/exec.go
parenta1ae3a05363050dc4bd809c367ba764b5d11e811 (diff)
downloadgo-fdade68379abdd9706881f4273e5f8cd9c0eb518.tar.xz
os/exec: make TestPipeLookPathLeak more verbose when it fails
Trying to understand the linux-386-387 failures: http://build.golang.org/log/78a91da173c11e986b4e623527c2d0b746f4e814 Also modernize the closeOnce code with a method value, while I was looking. LGTM=adg R=golang-codereviews, adg CC=golang-codereviews, iant https://golang.org/cl/87950044
Diffstat (limited to 'src/pkg/os/exec/exec.go')
-rw-r--r--src/pkg/os/exec/exec.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/pkg/os/exec/exec.go b/src/pkg/os/exec/exec.go
index 44b9cc08ce..a70ed0d20c 100644
--- a/src/pkg/os/exec/exec.go
+++ b/src/pkg/os/exec/exec.go
@@ -429,15 +429,17 @@ func (c *Cmd) StdinPipe() (io.WriteCloser, error) {
type closeOnce struct {
*os.File
- close sync.Once
- closeErr error
+ once sync.Once
+ err error
}
func (c *closeOnce) Close() error {
- c.close.Do(func() {
- c.closeErr = c.File.Close()
- })
- return c.closeErr
+ c.once.Do(c.close)
+ return c.err
+}
+
+func (c *closeOnce) close() {
+ c.err = c.File.Close()
}
// StdoutPipe returns a pipe that will be connected to the command's