...

Text file src/go.uber.org/atomic/README.md

Documentation: go.uber.org/atomic

     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

View as plain text