Simple wrappers for primitive types to enforce atomic access.
go get -u go.uber.org/atomic
The standard library's
sync/atomic is powerful, but it's easy to forget which variables must be accessed atomically.
go.uber.org/atomic preserves all the functionality of the standard library, but wraps the primitive types to provide a safer, more convenient API.
var atom atomic.Uint32 atom.Store(42) atom.Sub(2) atom.CAS(40, 11)
See the documentation for a complete API specification.
Released under the MIT License.