Skip to content
/ atomic Public

Wrapper types for sync/atomic which enforce atomic access

License

Notifications You must be signed in to change notification settings

uber-go/atomic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9dc4df0 · Oct 29, 2019

History

49 Commits
Oct 29, 2019
Jun 9, 2017
Oct 29, 2019
Oct 29, 2019
Oct 29, 2019
May 30, 2016
Oct 29, 2019
Oct 29, 2019
May 1, 2018
May 1, 2018
Sep 27, 2018
Sep 27, 2018
Oct 27, 2016
Oct 29, 2019
Oct 29, 2019
Sep 27, 2018
Nov 14, 2017
Nov 14, 2017
Oct 29, 2019

Repository files navigation

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.