mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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:
parent
68c6a73380
commit
3573227fe3
3 changed files with 9 additions and 6 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue