]> Cypherpunks repositories - gostls13.git/commit
os/exec: clean up pipe-closing logic
authorBryan C. Mills <bcmills@google.com>
Thu, 21 Apr 2022 20:06:00 +0000 (16:06 -0400)
committerGopher Robot <gobot@golang.org>
Mon, 26 Sep 2022 17:26:56 +0000 (17:26 +0000)
commitb8d4a14a660827ea0331eb6cad99860bf5fdf66f
treede5b8584b76d72affe364b3b1a9cb60b056d5dc4
parent1163acf3eaedf870d069058b540bfef5c470f520
os/exec: clean up pipe-closing logic

Change the childFiles field to a local variable, since it was
populated during Start and (as far as I can determine) has no purpose
after Start returns.

Rename closeAfterStart and closeAfterWait to childIOFiles and
parentIOPipes respectively. That makes their contents clearer, and also
helps to clarify what should happen on error (when, for example, Wait
shouldn't be called at all).

Use a deferred call instead of individual calls to close child (and,
if necessary, pipe) FDs after Start. That helps to clarify the
invariants around when they are closed, and also makes the function a
bit more robust for future refactoring.

Also nil out the slices containing the file closers so that they can
be collected earlier.

This CL is intended as a pure refactor in preparation for #50436.

Change-Id: I05d13fa91d539b95b84b2ba923c1733f9a6203e5
Reviewed-on: https://go-review.googlesource.com/c/go/+/401834
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
src/os/exec/exec.go