Switch to Go modules (#56)

This switches atomic to Go modules. This has the effect of simplifying
the Makefile and the Travis build, as well as getting rid of the overly
complicated coverage script we copied here.

Tools dependencies (currently only golint) were added to the tools.go.

As a result of this change, we no longer support the non-vanity import path
github.com/uber-go/atomic. Users must use the vanity import path, or add a
`replace` directive.

Supersedes #40 
12 files changed
tree: 395245c391cd91525c0050c7b48b8976e20dc417
  1. .github/
  2. .codecov.yml
  3. .gitignore
  4. .travis.yml
  5. atomic.go
  6. atomic_test.go
  7. CHANGELOG.md
  8. error.go
  9. error_test.go
  10. example_test.go
  11. go.mod
  12. go.sum
  13. LICENSE.txt
  14. Makefile
  15. README.md
  16. stress_test.go
  17. string.go
  18. string_test.go
  19. tools.go
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.