diff options
author | Bryan C. Mills <bcmills@google.com> | 2022-04-22 22:00:16 -0400 |
---|---|---|
committer | Bryan Mills <bcmills@google.com> | 2022-04-26 13:47:05 +0000 |
commit | ad5eaa8c4cd952df0d4894f11ee0158a9a33a0f3 (patch) | |
tree | 5d03dab465bf4a313f4d007f01f0644bb6bb2005 /src/os/exec/exec.go | |
parent | 17d7983b29ba633708a9d7b18f90ab5bc029502d (diff) | |
download | go-ad5eaa8c4cd952df0d4894f11ee0158a9a33a0f3.tar.gz go-ad5eaa8c4cd952df0d4894f11ee0158a9a33a0f3.zip |
os/exec: make skipStdinCopyError a function instead of a variable
This makes clearer that skipStdinCopyError is always defined and never
overridden in tests.
Secondarily, it may also help reduce init-time work and allow the
linker and/or inliner to better optimize this package.
(Noticed while prototyping #50436.)
Change-Id: I4f3c1bc146384a98136a4039f82165ed106c14b8
Reviewed-on: https://go-review.googlesource.com/c/go/+/401897
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Diffstat (limited to 'src/os/exec/exec.go')
-rw-r--r-- | src/os/exec/exec.go | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/src/os/exec/exec.go b/src/os/exec/exec.go index eeca83713bc..91c2e003d8d 100644 --- a/src/os/exec/exec.go +++ b/src/os/exec/exec.go @@ -230,10 +230,6 @@ func (c *Cmd) argv() []string { return []string{c.Path} } -// skipStdinCopyError optionally specifies a function which reports -// whether the provided stdin copy error should be ignored. -var skipStdinCopyError func(error) bool - func (c *Cmd) stdin() (f *os.File, err error) { if c.Stdin == nil { f, err = os.Open(os.DevNull) @@ -257,7 +253,7 @@ func (c *Cmd) stdin() (f *os.File, err error) { c.closeAfterWait = append(c.closeAfterWait, pw) c.goroutine = append(c.goroutine, func() error { _, err := io.Copy(pw, c.Stdin) - if skip := skipStdinCopyError; skip != nil && skip(err) { + if skipStdinCopyError(err) { err = nil } if err1 := pw.Close(); err == nil { |