From c94a9fdf651e44bed2fc72c783990a0eba63b24e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Wed, 20 Nov 2024 11:15:02 +0100 Subject: [PATCH] os: use ignoringEINTR2 in (*Process).pidWait This was missed in CL 627479. Change-Id: Ibcd511573c330bf782fe6a8a50d56bb70aedf3c7 Reviewed-on: https://go-review.googlesource.com/c/go/+/629915 Reviewed-by: Ian Lance Taylor Reviewed-by: Dmitri Shuralyov Auto-Submit: Tobias Klauser LUCI-TryBot-Result: Go LUCI --- src/os/exec_unix.go | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/os/exec_unix.go b/src/os/exec_unix.go index ba6146ada11..34467ac7a03 100644 --- a/src/os/exec_unix.go +++ b/src/os/exec_unix.go @@ -63,17 +63,12 @@ func (p *Process) pidWait() (*ProcessState, error) { var ( status syscall.WaitStatus rusage syscall.Rusage - pid1 int - e error ) - for { - pid1, e = syscall.Wait4(p.Pid, &status, 0, &rusage) - if e != syscall.EINTR { - break - } - } - if e != nil { - return nil, NewSyscallError("wait", e) + pid1, err := ignoringEINTR2(func() (int, error) { + return syscall.Wait4(p.Pid, &status, 0, &rusage) + }) + if err != nil { + return nil, NewSyscallError("wait", err) } p.pidDeactivate(statusDone) return &ProcessState{