aboutsummaryrefslogtreecommitdiff
path: root/src/os/exec/exec.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/exec/exec.go')
-rw-r--r--src/os/exec/exec.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/os/exec/exec.go b/src/os/exec/exec.go
index aa7a6be7f0..e5bf97a188 100644
--- a/src/os/exec/exec.go
+++ b/src/os/exec/exec.go
@@ -203,6 +203,11 @@ type Cmd struct {
// stops copying, either because it has reached the end of Stdin
// (EOF or a read error), or because writing to the pipe returned an error,
// or because a nonzero WaitDelay was set and expired.
+ //
+ // Regardless of WaitDelay, Wait can block until a Read from
+ // Stdin completes. If you need to use a blocking io.Reader,
+ // use the StdinPipe method to get a pipe, copy from the Reader
+ // to the pipe, and arrange to close the Reader after Wait returns.
Stdin io.Reader
// Stdout and Stderr specify the process's standard output and error.
@@ -219,6 +224,12 @@ type Cmd struct {
// goroutine reaches EOF or encounters an error or a nonzero WaitDelay
// expires.
//
+ // Regardless of WaitDelay, Wait can block until a Write to
+ // Stdout or Stderr completes. If you need to use a blocking io.Writer,
+ // use the StdoutPipe or StderrPipe method to get a pipe,
+ // copy from the pipe to the Writer, and arrange to close the
+ // Writer after Wait returns.
+ //
// If Stdout and Stderr are the same writer, and have a type that can
// be compared with ==, at most one goroutine at a time will call Write.
Stdout io.Writer