commit | fb77e1d7374710c62cb1dd8cf137415949bf7d19 | [log] [tgz] |
---|---|---|
author | Abhinav Gupta <abg@uber.com> | Tue Oct 29 15:14:36 2019 -0700 |
committer | Abhinav Gupta <abg@uber.com> | Tue Oct 29 15:14:36 2019 -0700 |
tree | 3332eff03bf9220727b46e85b50914a28c6fdb86 | |
parent | 9dc4df04d0d1c39369750a9f6c32c39560672089 [diff] |
Back to development
Simple wrappers for primitive types to enforce atomic access.
$ go get -u go.uber.org/atomic@v1
Note: If you are using Go modules, this package will fail to compile with the import path github.com/uber-go/atomic
. To continue using that import path, you will have to add a replace
directive to your go.mod
, replacing github.com/uber-go/atomic
with go.uber.org/atomic
.
$ go mod edit -replace github.com/uber-go/atomic=go.uber.org/atomic@v1
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.
Stable.
Released under the MIT License.