os: add and use errProcessReleased

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>
This commit is contained in:
Kir Kolyshkin 2025-09-10 19:00:19 -07:00 committed by Kirill Kolyshkin
parent 68c6a73380
commit 3573227fe3
3 changed files with 9 additions and 6 deletions

View file

@ -14,8 +14,12 @@ import (
"time" "time"
) )
var (
// ErrProcessDone indicates a [Process] has finished. // ErrProcessDone indicates a [Process] has finished.
var ErrProcessDone = errors.New("os: process already 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]. // processStatus describes the status of a [Process].
type processStatus uint32 type processStatus uint32

View file

@ -92,7 +92,7 @@ func (p *Process) signal(sig Signal) error {
func (p *Process) pidSignal(s syscall.Signal) error { func (p *Process) pidSignal(s syscall.Signal) error {
if p.Pid == pidReleased { if p.Pid == pidReleased {
return errors.New("os: process already released") return errProcessReleased
} }
if p.Pid == pidUnset { if p.Pid == pidUnset {
return errors.New("os: process not initialized") return errors.New("os: process not initialized")
@ -105,7 +105,7 @@ func (p *Process) pidSignal(s syscall.Signal) error {
case statusDone: case statusDone:
return ErrProcessDone return ErrProcessDone
case statusReleased: case statusReleased:
return errors.New("os: process already released") return errProcessReleased
} }
return convertESRCH(syscall.Kill(p.Pid, s)) return convertESRCH(syscall.Kill(p.Pid, s))

View file

@ -16,7 +16,6 @@
package os package os
import ( import (
"errors"
"internal/syscall/unix" "internal/syscall/unix"
"runtime" "runtime"
"sync" "sync"
@ -130,7 +129,7 @@ func (p *Process) pidfdSendSignal(s syscall.Signal) error {
case statusDone: case statusDone:
return ErrProcessDone return ErrProcessDone
case statusReleased: case statusReleased:
return errors.New("os: process already released") return errProcessReleased
} }
defer p.handleTransientRelease() defer p.handleTransientRelease()