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
		
	
| 
											2 years ago
										 | # 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 |