Commit Graph

7 Commits

Author SHA1 Message Date
eNV25
d4bbbc828d Add CompareAndSwap and Swap, Deprecate CAS (#111)
Adds CompareAndSwap and Swap methods to String, Error, and Value,
implemented by making use of Value.CompareAndSwap and Value.Swap
added in Go 1.17.

Following that, add CompareAndSwap to all other types with "CAS" methods
and deprecate CAS in favor of CompareAndSwap, since that's the convention
the standard library chose for these in Go 1.19.
2022-08-06 11:12:19 -07:00
Abhinav Gupta
122c956c5a all: Update copyright notices (#112)
This will reduce noise in other PRs.
2022-08-05 09:19:12 -07:00
Prashant Varanasi
d8a8972198 Improve argument/return names for better docs (#96)
This change is a renaming with no functional changes.

It includes the following renames:
 * `val` for arguments that replace the atomic value (e.g., `Store`).
 * `delta` for arguments that offset the atomic value (e.g., `Add`).
 * `old`, `new` for arguments to `CAS`.
 * `old` named return from `Swap`.
 * `swapped` for named return from `CAS`.

This also matches the names used in the stdlib atomic interface:
https://golang.org/pkg/sync/atomic/
2021-06-11 10:20:12 -07:00
Abhinav Gupta
2a929df6c0 generate: Use year range for license (#92)
The generators gen-atomicint and gen-atomicwrapper hard-coded the year
into the licenses of the generated files.

Update to generate year ranges for the licenses, starting at 2020, going
to whatever today's year is.
2021-06-08 11:27:37 -07:00
Abhinav Gupta
f64e592f7f staticcheck: Fix unused fields
The embedded `nocmp` field and other similar fields are unused in tests
and the rest of our code.

We can get the effect of `nocmp` without embedding the fields by using
`_ nocmp` as a field.
2020-09-11 11:24:56 -07:00
Abhinav Gupta
b3957f7343 duration: Generate with gen-atomicwrapper
Generate atomic.Duration with gen-valuewrapper by wrapping atomic.Int64.
Use type casts to int64 and time.Duration as pack and unpack.
2020-05-15 15:47:25 -07:00
Abhinav Gupta
af220de512 Separate files for each atomic type
As in #73, separate each atomic type into its own file to ease review of
transition to generated code.

After moving every atomic to its own file, the atomic.go file serves
only as documentation, so rename it to doc.go.
2020-05-15 15:47:25 -07:00