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:
9
bool.go
9
bool.go
@@ -55,8 +55,15 @@ func (x *Bool) Store(val bool) {
|
||||
}
|
||||
|
||||
// CAS is an atomic compare-and-swap for bool values.
|
||||
//
|
||||
// Deprecated: Use CompareAndSwap.
|
||||
func (x *Bool) CAS(old, new bool) (swapped bool) {
|
||||
return x.v.CAS(boolToInt(old), boolToInt(new))
|
||||
return x.CompareAndSwap(old, new)
|
||||
}
|
||||
|
||||
// CompareAndSwap is an atomic compare-and-swap for bool values.
|
||||
func (x *Bool) CompareAndSwap(old, new bool) (swapped bool) {
|
||||
return x.v.CompareAndSwap(boolToInt(old), boolToInt(new))
|
||||
}
|
||||
|
||||
// Swap atomically stores the given bool and returns the old
|
||||
|
||||
Reference in New Issue
Block a user