You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
| # atomic [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [![Go Report Card][reportcard-img]][reportcard]
 | |
| 
 | |
| Simple wrappers for primitive types to enforce atomic access.
 | |
| 
 | |
| ## Installation
 | |
| 
 | |
| ```shell
 | |
| $ go get -u go.uber.org/atomic@v1
 | |
| ```
 | |
| 
 | |
| ### Legacy Import Path
 | |
| 
 | |
| As of v1.5.0, the import path `go.uber.org/atomic` is the only supported way
 | |
| of using this package. If you are using Go modules, this package will fail to
 | |
| compile with the legacy import path path `github.com/uber-go/atomic`.
 | |
| 
 | |
| We recommend migrating your code to the new import path but if you're unable
 | |
| to do so, or if your dependencies are still using the old import path, you
 | |
| will have to add a `replace` directive to your `go.mod` file downgrading the
 | |
| legacy import path to an older version.
 | |
| 
 | |
| ```
 | |
| replace github.com/uber-go/atomic => github.com/uber-go/atomic v1.4.0
 | |
| ```
 | |
| 
 | |
| You can do so automatically by running the following command.
 | |
| 
 | |
| ```shell
 | |
| $ go mod edit -replace github.com/uber-go/atomic=github.com/uber-go/atomic@v1.4.0
 | |
| ```
 | |
| 
 | |
| ## 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.
 | |
| 
 | |
| ```go
 | |
| var atom atomic.Uint32
 | |
| atom.Store(42)
 | |
| atom.Sub(2)
 | |
| atom.CAS(40, 11)
 | |
| ```
 | |
| 
 | |
| See the [documentation][doc] for a complete API specification.
 | |
| 
 | |
| ## Development Status
 | |
| 
 | |
| Stable.
 | |
| 
 | |
| ---
 | |
| 
 | |
| Released under the [MIT License](LICENSE.txt).
 | |
| 
 | |
| [doc-img]: https://godoc.org/github.com/uber-go/atomic?status.svg
 | |
| [doc]: https://godoc.org/go.uber.org/atomic
 | |
| [ci-img]: https://github.com/uber-go/atomic/actions/workflows/go.yml/badge.svg
 | |
| [ci]: https://github.com/uber-go/atomic/actions/workflows/go.yml
 | |
| [cov-img]: https://codecov.io/gh/uber-go/atomic/branch/master/graph/badge.svg
 | |
| [cov]: https://codecov.io/gh/uber-go/atomic
 | |
| [reportcard-img]: https://goreportcard.com/badge/go.uber.org/atomic
 | |
| [reportcard]: https://goreportcard.com/report/go.uber.org/atomic
 |