]> Cypherpunks repositories - gostls13.git/commitdiff
os: add and use errProcessReleased
authorKir Kolyshkin <kolyshkin@gmail.com>
Thu, 11 Sep 2025 02:00:19 +0000 (19:00 -0700)
committerKirill Kolyshkin <kolyshkin@gmail.com>
Mon, 15 Sep 2025 18:58:58 +0000 (11:58 -0700)
This error is already used in three places, so let's define it.

Change-Id: I73565d94aebcf3d5a278201d96839d82db85a2d4
Reviewed-on: https://go-review.googlesource.com/c/go/+/702436
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Mark Freeman <markfreeman@google.com>
Reviewed-by: Sean Liao <sean@liao.dev>
Reviewed-by: Michael Pratt <mpratt@google.com>
src/os/exec.go
src/os/exec_unix.go
src/os/pidfd_linux.go

index 43b33fe94428648cc1cd3802336426f0e91b4e69..e14434d8b5d36f994d4dea0c5af9529d52f5169b 100644 (file)
@@ -14,8 +14,12 @@ import (
        "time"
 )
 
-// ErrProcessDone indicates a [Process] has finished.
-var ErrProcessDone = errors.New("os: process already finished")
+var (
+       // ErrProcessDone indicates a [Process] has finished.
+       ErrProcessDone = errors.New("os: process already finished")
+       // errProcessReleased indicates a [Process] has been released.
+       errProcessReleased = errors.New("os: process already released")
+)
 
 // processStatus describes the status of a [Process].
 type processStatus uint32
index f9be8dc06878ac23d53ba8c386b084aa39d0e4e6..d2ceb0ceb5aeebf1cd943461d879e5d8d98e1406 100644 (file)
@@ -92,7 +92,7 @@ func (p *Process) signal(sig Signal) error {
 
 func (p *Process) pidSignal(s syscall.Signal) error {
        if p.Pid == pidReleased {
-               return errors.New("os: process already released")
+               return errProcessReleased
        }
        if p.Pid == pidUnset {
                return errors.New("os: process not initialized")
@@ -105,7 +105,7 @@ func (p *Process) pidSignal(s syscall.Signal) error {
        case statusDone:
                return ErrProcessDone
        case statusReleased:
-               return errors.New("os: process already released")
+               return errProcessReleased
        }
 
        return convertESRCH(syscall.Kill(p.Pid, s))
index 59911e88244ca311522f2dc5a59cb76de58753bd..796d8c018c7f2a9ba5392949dd63cb8484a6efc2 100644 (file)
@@ -16,7 +16,6 @@
 package os
 
 import (
-       "errors"
        "internal/syscall/unix"
        "runtime"
        "sync"
@@ -130,7 +129,7 @@ func (p *Process) pidfdSendSignal(s syscall.Signal) error {
        case statusDone:
                return ErrProcessDone
        case statusReleased:
-               return errors.New("os: process already released")
+               return errProcessReleased
        }
        defer p.handleTransientRelease()