Replace atomicBool with the standard library atomic.Bool

Signed-off-by: hang.jiang <hang.jiang@daocloud.io>
This commit is contained in:
hang.jiang 2023-06-02 10:20:34 +08:00
parent 8a6c8a96c0
commit 28d8c79de7
3 changed files with 5 additions and 20 deletions

View File

@ -27,6 +27,7 @@ import (
"path/filepath"
"strings"
"sync"
"sync/atomic"
"time"
"github.com/containerd/console"
@ -62,7 +63,7 @@ type Init struct {
io *processIO
runtime *runc.Runc
// pausing preserves the pausing state.
pausing *atomicBool
pausing atomic.Bool
status int
exited time.Time
pid int
@ -97,7 +98,6 @@ func New(id string, runtime *runc.Runc, stdio stdio.Stdio) *Init {
p := &Init{
id: id,
runtime: runtime,
pausing: new(atomicBool),
stdio: stdio,
status: 0,
waitBlock: make(chan struct{}),
@ -240,7 +240,7 @@ func (p *Init) ExitedAt() time.Time {
// Status of the process
func (p *Init) Status(ctx context.Context) (string, error) {
if p.pausing.get() {
if p.pausing.Load() {
return "pausing", nil
}

View File

@ -235,12 +235,12 @@ func (s *runningState) transition(name string) error {
}
func (s *runningState) Pause(ctx context.Context) error {
s.p.pausing.set(true)
s.p.pausing.Store(true)
// NOTE "pausing" will be returned in the short window
// after `transition("paused")`, before `pausing` is reset
// to false. That doesn't break the state machine, just
// delays the "paused" state a little bit.
defer s.p.pausing.set(false)
defer s.p.pausing.Store(false)
if err := s.p.runtime.Pause(ctx, s.p.id); err != nil {
return s.p.runtimeError(err, "OCI runtime pause failed")

View File

@ -27,7 +27,6 @@ import (
"path/filepath"
"strings"
"sync"
"sync/atomic"
"time"
"github.com/containerd/containerd/errdefs"
@ -54,20 +53,6 @@ func (s *safePid) get() int {
return s.pid
}
type atomicBool int32
func (ab *atomicBool) set(b bool) {
if b {
atomic.StoreInt32((*int32)(ab), 1)
} else {
atomic.StoreInt32((*int32)(ab), 0)
}
}
func (ab *atomicBool) get() bool {
return atomic.LoadInt32((*int32)(ab)) == 1
}
// TODO(mlaventure): move to runc package?
func getLastRuntimeError(r *runc.Runc) (string, error) {
if r.Log == "" {