go/src/os
Bryan C. Mills 223a563f58 os/exec: refactor goroutine error reporting
Use a separate channel to report the final error of the copying
goroutines, receiving a value only when all of the copying goroutines
have completed. In a followup change (CL 401835), that will allow
waiters to select on goroutine completion alongside other events (such
as Context cancellation).

Also mildly refactor the watchCtx helper method so that its structure
better matches what will be needed to implement WaitDelay.

For #50436.

Change-Id: I54b3997fb6931d204814d8382f0a388a67b520f1
Reviewed-on: https://go-review.googlesource.com/c/go/+/435995
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
2022-09-29 02:34:30 +00:00
..
exec os/exec: refactor goroutine error reporting 2022-09-29 02:34:30 +00:00
signal os/signal: disable GNU readline to deflake TestTerminalSignal 2022-09-28 16:30:21 +00:00
testdata
user all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
dir.go
dir_darwin.go
dir_plan9.go
dir_unix.go all: gofmt -w -r 'interface{} -> any' src 2021-12-13 18:45:54 +00:00
dir_windows.go
dirent_aix.go
dirent_dragonfly.go
dirent_freebsd.go
dirent_js.go
dirent_linux.go
dirent_netbsd.go
dirent_openbsd.go
dirent_solaris.go
endian_big.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
endian_little.go go, math, os, reflect: support standard library for loong64 2022-05-20 15:12:52 +00:00
env.go
env_test.go all: gofmt -w -r 'interface{} -> any' src 2021-12-13 18:45:54 +00:00
env_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
error.go os: delete unused errClosed 2022-09-06 16:57:58 +00:00
error_errno.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
error_plan9.go
error_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
error_test.go
error_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
error_windows_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
example_test.go os: add examples for Mkdir and MkdirAll 2022-02-08 23:38:05 +00:00
exec.go os: convert Process.isdone to atomic type 2022-09-15 21:11:27 +00:00
exec_plan9.go all: gofmt -w -r 'interface{} -> any' src 2021-12-13 18:45:54 +00:00
exec_posix.go Revert "os: add handling of os.Interrupt for windows" 2022-04-04 15:12:26 +00:00
exec_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
exec_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
exec_windows.go Revert "os: add handling of os.Interrupt for windows" 2022-04-04 15:12:26 +00:00
executable.go
executable_darwin.go
executable_dragonfly.go
executable_freebsd.go
executable_path.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
executable_plan9.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
executable_procfs.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
executable_solaris.go
executable_sysctl.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
executable_test.go os: skip TestExecutableDeleted on plan9 2021-05-04 18:47:19 +00:00
executable_windows.go
export_linux_test.go
export_test.go
export_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
export_windows_test.go
fifo_test.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
file.go os: use unsafe.{Slice,StringData} instead of unsafeheader package 2022-09-08 21:18:58 +00:00
file_plan9.go all: replace `` and '' with “ (U+201C) and ” (U+201D) in doc comments 2022-04-05 17:52:29 +00:00
file_posix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
file_unix.go os: only add file descriptors which are set to non-blocking mode to the netpoller 2022-08-18 03:12:27 +00:00
file_windows.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
getwd.go
os_test.go os: fix wrong error msg from TestDoubleCloseError 2022-09-08 21:19:00 +00:00
os_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
os_windows_test.go os: run TestStatSymlinkLoop on all platforms 2022-04-03 07:17:45 +00:00
path.go
path_plan9.go
path_test.go os: enable TestMkdirAllWithSymlink on darwin/arm64 2022-01-02 14:27:32 +00:00
path_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
path_windows.go os: fix a typo in path_windows.go 2022-06-30 21:52:06 +00:00
path_windows_test.go
pipe2_unix.go os, internal/syscall/unix: consolidate Pipe implementations 2022-03-08 21:16:44 +00:00
pipe_test.go all: separate doc comment from //go: directives 2022-04-05 17:54:15 +00:00
pipe_unix.go os, internal/syscall/unix: consolidate Pipe implementations 2022-03-08 21:16:44 +00:00
proc.go runtime: add an exit hook facility 2022-09-26 21:49:14 +00:00
rawconn.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
rawconn_test.go all: separate doc comment from //go: directives 2022-04-05 17:54:15 +00:00
read_test.go
readfrom_linux.go
readfrom_linux_test.go os: add a test case of copying a file itself via io.Copy 2022-09-09 15:34:46 +00:00
readfrom_stub.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
removeall_at.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
removeall_noat.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
removeall_test.go
rlimit.go os: raise open file rlimit at startup 2022-03-17 03:04:30 +00:00
rlimit_darwin.go os: raise open file rlimit at startup 2022-03-17 03:04:30 +00:00
rlimit_stub.go os: raise open file rlimit at startup 2022-03-17 03:04:30 +00:00
rlimit_test.go os: use a lower file count for TestOpenFileLimit on openbsd 2022-04-23 14:26:25 +00:00
stat.go
stat_aix.go
stat_darwin.go os: use syscall.Timespec.Unix 2022-03-28 04:41:26 +00:00
stat_dragonfly.go os: use syscall.Timespec.Unix 2022-03-28 04:41:26 +00:00
stat_freebsd.go os: use syscall.Timespec.Unix 2022-03-28 04:41:26 +00:00
stat_js.go os: use syscall.Timespec.Unix 2022-03-28 04:41:26 +00:00
stat_linux.go os: use syscall.Timespec.Unix 2022-03-28 04:41:26 +00:00
stat_netbsd.go os: use syscall.Timespec.Unix 2022-03-28 04:41:26 +00:00
stat_openbsd.go os: use syscall.Timespec.Unix 2022-03-28 04:41:26 +00:00
stat_plan9.go all: gofmt -w -r 'interface{} -> any' src 2021-12-13 18:45:54 +00:00
stat_solaris.go os: mark Solaris nam/door/port files as irregular 2022-04-12 01:41:47 +00:00
stat_test.go
stat_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
stat_windows.go
sticky_bsd.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sticky_notbsd.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
str.go
sys.go
sys_aix.go
sys_bsd.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sys_js.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00
sys_linux.go
sys_plan9.go
sys_solaris.go
sys_unix.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
sys_windows.go
tempfile.go os: don't repeat dir argument in CreateTemp error 2022-02-07 07:14:28 +00:00
tempfile_test.go all: fix spelling 2022-05-18 00:47:29 +00:00
timeout_test.go os: simplify deadline fluctuation tests 2022-06-30 19:37:21 +00:00
types.go
types_plan9.go all: gofmt -w -r 'interface{} -> any' src 2021-12-13 18:45:54 +00:00
types_unix.go all: gofmt -w -r 'interface{} -> any' src 2021-12-13 18:45:54 +00:00
types_windows.go all: gofmt -w -r 'interface{} -> any' src 2021-12-13 18:45:54 +00:00
wait_unimp.go os: use wait6 to avoid wait/kill race on netbsd 2022-09-19 18:44:37 +00:00
wait_wait6.go os: use wait6 to avoid wait/kill race on netbsd 2022-09-19 18:44:37 +00:00
wait_waitid.go all: go fix -fix=buildtag std cmd (except for bootstrap deps, vendor) 2021-10-28 18:17:57 +00:00