jason 075d766964 first 3 lat temu
..
.github 075d766964 first 3 lat temu
.codecov.yml 075d766964 first 3 lat temu
.gitignore 075d766964 first 3 lat temu
.travis.yml 075d766964 first 3 lat temu
CHANGELOG.md 075d766964 first 3 lat temu
LICENSE.txt 075d766964 first 3 lat temu
Makefile 075d766964 first 3 lat temu
README.md 075d766964 first 3 lat temu
atomic.go 075d766964 first 3 lat temu
atomic_test.go 075d766964 first 3 lat temu
error.go 075d766964 first 3 lat temu
error_test.go 075d766964 first 3 lat temu
example_test.go 075d766964 first 3 lat temu
go.mod 075d766964 first 3 lat temu
go.sum 075d766964 first 3 lat temu
stress_test.go 075d766964 first 3 lat temu
string.go 075d766964 first 3 lat temu
string_test.go 075d766964 first 3 lat temu
tools.go 075d766964 first 3 lat temu

README.md

atomic GoDoc Build Status Coverage Status Go Report Card

Simple wrappers for primitive types to enforce atomic access.

Installation

$ 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

Usage

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.

Development Status

Stable.


Released under the MIT License.