final class · System.Threading
AtomicI64
public final class AtomicI64
An i64 that threads change together (as AtomicI32).
- Kind
- final class
- Namespace
- System.Threading
- Assembly
- System.Core
- Access
- public, final
- Source file
Threading.ant
Inheritance
- Base classes
-
AnyAtomicI64
Constructors
Properties
Methods
Private and internal members (6)
Inherited members (5)
GetTypemethod from AnyUndescribedmethod from AnyToStringmethod from AnyHashmethod from Anydestroymethod from Any
Source
AtomicI64 as Antril, decompiled from its Larva HIR.
// System.Threading.AtomicI64 — System.Core (decompiled from Larva HIR)
into namespace System.Threading
{
/// An i64 that threads change together (as AtomicI32).
public final class AtomicI64
{
i64 value;
static unsafe extern("atomic.load.i64") LoadAt(i64* at) : i64;
static unsafe extern("atomic.store.i64") StoreAt(i64* at, i64 value);
static unsafe extern("atomic.add.i64") AddAt(i64* at, i64 value) : i64;
static unsafe extern("atomic.xchg.i64") ExchangeAt(i64* at, i64 value) : i64;
static unsafe extern("atomic.cas.i64") CompareAt(i64* at, i64 expected, i64 value) : i64;
public:
new()
{
}
new(i64 value)
{
this.value = value;
}
Load() : i64
{
unsafe
{
return LoadAt(&value);
}
}
Store(i64 v)
{
unsafe
{
StoreAt(&value, v);
}
}
Add(i64 delta) : i64
{
unsafe
{
return AddAt(&value, delta) + delta;
}
}
Increment() : i64
{
unsafe
{
return AddAt(&value, 1) + 1;
}
}
Decrement() : i64
{
unsafe
{
return AddAt(&value, -1) - 1;
}
}
Exchange(i64 v) : i64
{
unsafe
{
return ExchangeAt(&value, v);
}
}
CompareExchange(i64 v, i64 comparand) : i64
{
unsafe
{
return CompareAt(&value, comparand, v);
}
}
i64 Value
{
get => Load();
set
{
Store(value);
}
}
}
}