Add CompareAndSwap and Swap, Deprecate CAS (#111)
Adds CompareAndSwap and Swap methods to String, Error, and Value, implemented by making use of Value.CompareAndSwap and Value.Swap added in Go 1.17. Following that, add CompareAndSwap to all other types with "CAS" methods and deprecate CAS in favor of CompareAndSwap, since that's the convention the standard library chose for these in Go 1.19.
This commit is contained in:
@@ -66,7 +66,14 @@ func (i *Uint32) Dec() uint32 {
|
||||
}
|
||||
|
||||
// CAS is an atomic compare-and-swap.
|
||||
//
|
||||
// Deprecated: Use CompareAndSwap.
|
||||
func (i *Uint32) CAS(old, new uint32) (swapped bool) {
|
||||
return i.CompareAndSwap(old, new)
|
||||
}
|
||||
|
||||
// CompareAndSwap is an atomic compare-and-swap.
|
||||
func (i *Uint32) CompareAndSwap(old, new uint32) (swapped bool) {
|
||||
return atomic.CompareAndSwapUint32(&i.v, old, new)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user