]> Cypherpunks repositories - gostls13.git/commit
os/exec: avoid atomic.Bool for Cmd.startCalled
authorAlan Donovan <adonovan@google.com>
Tue, 6 Jan 2026 19:48:31 +0000 (14:48 -0500)
committerAlan Donovan <adonovan@google.com>
Tue, 6 Jan 2026 20:26:39 +0000 (12:26 -0800)
commitd1d0fc7a97539206e33f04bac935f6450597137c
tree9516da2fd9c036f610f3db736d0889cbde586ddc
parent9b2e3b9a02bd8872bdbf5c6086674fa6b4bc8ef9
os/exec: avoid atomic.Bool for Cmd.startCalled

An atomic.Bool isn't necessary here since, unless otherwise
specified, the methods of an object are not concurrency-safe
w.r.t. each other. Using an atomic causes the copylocks vet
check to warn about copying of Cmd, which is not wrong, because
one shouldn't be copying opaque complex structs from other
packages, but it is a nuisance in the absence of any safe way
to copy a Cmd.

If and when we add a Clone method to Cmd (see #77075) then
it would be appropriate to revert this change so that we get
the benefit of the static check (though ideally we would make
a more explicit tool-readable declaration of the "do not copy"
attribute than merely happening to use an atomic.Bool).

For #77075

Change-Id: I982d4e86623ca165a3e76bbf648fd44041d5f6bb
Reviewed-on: https://go-review.googlesource.com/c/go/+/734200
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
src/os/exec/exec.go