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>
"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
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")
case statusDone:
return ErrProcessDone
case statusReleased:
- return errors.New("os: process already released")
+ return errProcessReleased
}
return convertESRCH(syscall.Kill(p.Pid, s))
package os
import (
- "errors"
"internal/syscall/unix"
"runtime"
"sync"
case statusDone:
return ErrProcessDone
case statusReleased:
- return errors.New("os: process already released")
+ return errProcessReleased
}
defer p.handleTransientRelease()