go.sync.atomic
1.23.1.5
See the version list below for details.
dotnet add package go.sync.atomic --version 1.23.1.5
NuGet\Install-Package go.sync.atomic -Version 1.23.1.5
<PackageReference Include="go.sync.atomic" Version="1.23.1.5" />
<PackageVersion Include="go.sync.atomic" Version="1.23.1.5" />
<PackageReference Include="go.sync.atomic" />
paket add go.sync.atomic --version 1.23.1.5
#r "nuget: go.sync.atomic, 1.23.1.5"
#:package go.sync.atomic@1.23.1.5
#addin nuget:?package=go.sync.atomic&version=1.23.1.5
#tool nuget:?package=go.sync.atomic&version=1.23.1.5
go.sync.atomic
C# package converted from the Go standard library by go2cs.
Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms.
These functions require great care to be used correctly. Except for special, low-level applications, synchronization is better done with channels or the facilities of the sync package. Share memory by communicating; don't communicate by sharing memory.
The swap operation, implemented by the SwapT functions, is the atomic equivalent of:
old = *addr
*addr = new
return old
The compare-and-swap operation, implemented by the CompareAndSwapT functions, is the atomic equivalent of:
if *addr == old {
*addr = new
return true
}
return false
The add operation, implemented by the AddT functions, is the atomic equivalent of:
*addr += delta
return *addr
The load and store operations, implemented by the LoadT and StoreT functions, are the atomic equivalents of "return *addr" and "*addr = val".
In the terminology of the Go memory model, if the effect of an atomic operation A is observed by atomic operation B, then A “synchronizes before” B. Additionally, all the atomic operations executed in a program behave as though executed in some sequentially consistent order. This definition provides the same semantics as C++'s sequentially consistent atomics and Java's volatile variables.
Copyright 2009 The Go Authors. All rights reserved. This C# package is converted from Go standard library source; use of that source is governed by a BSD-style license that can be found in the LICENSE file. The go2cs conversion itself is distributed under the MIT license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
NuGet packages (28)
Showing the top 5 NuGet packages that depend on go.sync.atomic:
| Package | Downloads |
|---|---|
|
go.sync
sync (net10.0 - Release) -- C# project converted from Go source |
|
|
go.syscall
syscall (net10.0 - Release) -- C# project converted from Go source |
|
|
go.internal.bisect
internal.bisect (net10.0 - Release) -- C# project converted from Go source |
|
|
go.internal.godebug
internal.godebug (net10.0 - Release) -- C# project converted from Go source |
|
|
go.internal.poll
internal.poll (net10.0 - Release) -- C# project converted from Go source |
GitHub repositories
This package is not used by any popular GitHub repositories.