final class · System.Threading

AtomicI64

public final class AtomicI64

An i64 that threads change together (as AtomicI32).

Tipo
final class
Espacio de nombres
System.Threading
Ensamblado
System.Core
Acceso
public, final
Archivo fuente
Threading.ant

Herencia

Clases base
Any AtomicI64

Constructores

new()
#
new(i64 value)
#

Propiedades

i64 Value { get; set; }
#

Métodos

Load() : i64
#
Store(i64 v)
#
Add(i64 delta) : i64
#
Increment() : i64
#
Decrement() : i64
#
Exchange(i64 v) : i64
#
CompareExchange(i64 v, i64 comparand) : i64
#

Miembros privados e internos (6)

i64 value
#

private

static unsafe extern("atomic.load.i64") LoadAt(i64* at) : i64
#

private static

static unsafe extern("atomic.store.i64") StoreAt(i64* at, i64 value)
#

private static

static unsafe extern("atomic.add.i64") AddAt(i64* at, i64 value) : i64
#

private static

static unsafe extern("atomic.xchg.i64") ExchangeAt(i64* at, i64 value) : i64
#

private static

static unsafe extern("atomic.cas.i64") CompareAt(i64* at, i64 expected, i64 value) : i64
#

private static

Miembros heredados (5)

Código fuente

AtomicI64 en Antril, descompilado a partir de su Larva HIR.

System.Threading.AtomicI64.ant
// 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);
				}
			}
	}
}
Esc