commit | 473b9563f0a8a942bb1cbe81ed990abd41a3be2b | [log] [tgz] |
---|---|---|
author | Abhinav Gupta <abg@uber.com> | Tue Oct 29 15:04:38 2019 -0700 |
committer | GitHub <noreply@github.com> | Tue Oct 29 15:04:38 2019 -0700 |
tree | 395245c391cd91525c0050c7b48b8976e20dc417 | |
parent | 187d219e0c37dd5ba4f4dbadd4794275167b460d [diff] |
Switch to Go modules (#56) This switches atomic to Go modules. This has the effect of simplifying the Makefile and the Travis build, as well as getting rid of the overly complicated coverage script we copied here. Tools dependencies (currently only golint) were added to the tools.go. As a result of this change, we no longer support the non-vanity import path github.com/uber-go/atomic. Users must use the vanity import path, or add a `replace` directive. Supersedes #40
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.