1# atomic [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [![Go Report Card][reportcard-img]][reportcard] 2 3Simple wrappers for primitive types to enforce atomic access. 4 5## Installation 6 7```shell 8$ go get -u go.uber.org/atomic@v1 9``` 10 11### Legacy Import Path 12 13As of v1.5.0, the import path `go.uber.org/atomic` is the only supported way 14of using this package. If you are using Go modules, this package will fail to 15compile with the legacy import path path `github.com/uber-go/atomic`. 16 17We recommend migrating your code to the new import path but if you're unable 18to do so, or if your dependencies are still using the old import path, you 19will have to add a `replace` directive to your `go.mod` file downgrading the 20legacy import path to an older version. 21 22``` 23replace github.com/uber-go/atomic => github.com/uber-go/atomic v1.4.0 24``` 25 26You can do so automatically by running the following command. 27 28```shell 29$ go mod edit -replace github.com/uber-go/atomic=github.com/uber-go/atomic@v1.4.0 30``` 31 32## Usage 33 34The standard library's `sync/atomic` is powerful, but it's easy to forget which 35variables must be accessed atomically. `go.uber.org/atomic` preserves all the 36functionality of the standard library, but wraps the primitive types to 37provide a safer, more convenient API. 38 39```go 40var atom atomic.Uint32 41atom.Store(42) 42atom.Sub(2) 43atom.CAS(40, 11) 44``` 45 46See the [documentation][doc] for a complete API specification. 47 48## Development Status 49 50Stable. 51 52--- 53 54Released under the [MIT License](LICENSE.txt). 55 56[doc-img]: https://godoc.org/github.com/uber-go/atomic?status.svg 57[doc]: https://godoc.org/go.uber.org/atomic 58[ci-img]: https://github.com/uber-go/atomic/actions/workflows/go.yml/badge.svg 59[ci]: https://github.com/uber-go/atomic/actions/workflows/go.yml 60[cov-img]: https://codecov.io/gh/uber-go/atomic/branch/master/graph/badge.svg 61[cov]: https://codecov.io/gh/uber-go/atomic 62[reportcard-img]: https://goreportcard.com/badge/go.uber.org/atomic 63[reportcard]: https://goreportcard.com/report/go.uber.org/atomic 64