GoCollections/lang/atomic/UInt64.go

30 lines
514 B
Go

package atomic
import (
"sync/atomic"
)
type UInt64 struct {
i uint64
}
func (v *UInt64) Load() (val uint64) {
return atomic.LoadUint64(&v.i)
}
func (v *UInt64) Store(val uint64) {
atomic.StoreUint64(&v.i, val)
}
func (v *UInt64) Swap(new uint64) (old uint64) {
return atomic.SwapUint64(&v.i, new)
}
func (v *UInt64) CompareAndSwap(old, new uint64) (swapped bool) {
return atomic.CompareAndSwapUint64(&v.i, old, new)
}
func (v *UInt64) Add(i uint64) (new uint64) {
return atomic.AddUint64(&v.i, i)
}