// A Bool is an atomic boolean value.
// The zero value is false.
+//
+// Bool must not be copied after first use.
type Bool struct {
_ noCopy
v uint32
var _ = &Pointer[int]{}
// A Pointer is an atomic pointer of type *T. The zero value is a nil *T.
+//
+// Pointer must not be copied after first use.
type Pointer[T any] struct {
// Mention *T in a field to disallow conversion between Pointer types.
// See go.dev/issue/56603 for more details.
}
// An Int32 is an atomic int32. The zero value is zero.
+//
+// Int32 must not be copied after first use.
type Int32 struct {
_ noCopy
v int32
func (x *Int32) Or(mask int32) (old int32) { return OrInt32(&x.v, mask) }
// An Int64 is an atomic int64. The zero value is zero.
+//
+// Int64 must not be copied after first use.
type Int64 struct {
_ noCopy
_ align64
func (x *Int64) Or(mask int64) (old int64) { return OrInt64(&x.v, mask) }
// A Uint32 is an atomic uint32. The zero value is zero.
+//
+// Uint32 must not be copied after first use.
type Uint32 struct {
_ noCopy
v uint32
func (x *Uint32) Or(mask uint32) (old uint32) { return OrUint32(&x.v, mask) }
// A Uint64 is an atomic uint64. The zero value is zero.
+//
+// Uint64 must not be copied after first use.
type Uint64 struct {
_ noCopy
_ align64
func (x *Uint64) Or(mask uint64) (old uint64) { return OrUint64(&x.v, mask) }
// A Uintptr is an atomic uintptr. The zero value is zero.
+//
+// Uintptr must not be copied after first use.
type Uintptr struct {
_ noCopy
v uintptr