• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H14-Sep-2020-

internal/H14-Sep-2020-

tools/H14-Sep-2020-

.codecov.ymlH A D14-Sep-2020881

.gitignoreH A D14-Sep-202099

.travis.ymlH A D14-Sep-2020351

CHANGELOG.mdH A D14-Sep-20202.5 KiB

MakefileH A D14-Sep-20202 KiB

README.mdH A D14-Sep-20202 KiB

assert_test.goH A D14-Sep-20201.7 KiB

bool.goH A D14-Sep-20202.3 KiB

bool_ext.goH A D14-Sep-20201.7 KiB

bool_test.goH A D14-Sep-20203.3 KiB

doc.goH A D14-Sep-20201.2 KiB

duration.goH A D14-Sep-20202.5 KiB

duration_ext.goH A D14-Sep-20201.8 KiB

duration_test.goH A D14-Sep-20202.9 KiB

error.goH A D14-Sep-20201.7 KiB

error_ext.goH A D14-Sep-20201.6 KiB

error_test.goH A D14-Sep-20201.9 KiB

example_test.goH A D14-Sep-20201.4 KiB

float64.goH A D14-Sep-20202.2 KiB

float64_ext.goH A D14-Sep-20201.8 KiB

float64_test.goH A D14-Sep-20202.7 KiB

gen.goH A D14-Sep-20201.4 KiB

go.modH A D14-Sep-2020131

go.sumH A D14-Sep-2020779

int32.goH A D14-Sep-20202.9 KiB

int32_test.goH A D14-Sep-20203.1 KiB

int64.goH A D14-Sep-20202.9 KiB

int64_test.goH A D14-Sep-20203.1 KiB

nocmp.goH A D14-Sep-20201.4 KiB

nocmp_test.goH A D14-Sep-20204.1 KiB

stress_test.goH A D14-Sep-20205.5 KiB

string.goH A D14-Sep-20201.7 KiB

string_ext.goH A D14-Sep-20201.7 KiB

string_test.goH A D14-Sep-20203.1 KiB

uint32.goH A D14-Sep-20203 KiB

uint32_test.goH A D14-Sep-20203 KiB

uint64.goH A D14-Sep-20203 KiB

uint64_test.goH A D14-Sep-20203 KiB

value.goH A D14-Sep-20201.3 KiB

value_test.goH A D14-Sep-20201.4 KiB

README.md

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://travis-ci.com/uber-go/atomic.svg?branch=master
59[ci]: https://travis-ci.com/uber-go/atomic
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