EdgexAgent/device-gps-go/internal/container/atomicint.go
2025-07-10 20:30:06 +08:00

35 lines
510 B
Go

// -*- Mode: Go; indent-tabs-mode: t -*-
//
// Copyright (C) 2025 IOTech Ltd
//
// SPDX-License-Identifier: Apache-2.0
package container
import "sync"
type AtomicInt struct {
mutex sync.RWMutex
value int
}
func (i *AtomicInt) Value() int {
i.mutex.RLock()
defer i.mutex.RUnlock()
v := i.value
return v
}
func (i *AtomicInt) Decrease() int {
i.mutex.Lock()
defer i.mutex.Unlock()
i.value--
return i.value
}
func (i *AtomicInt) Set(v int) {
i.mutex.Lock()
defer i.mutex.Unlock()
i.value = v
}