class · System.Threading

Interlocked

public class System.Threading.Interlocked : System.Any

Atomic operations on numbers in memory reached by pointers (unsafe code): Interlocked.Add(&counts[i], 1).

Kind
class
Namespace
System.Threading
Assembly
System.Core
Access
public, static, abstract
Source file
Threading.ant

Inheritance

Base classes
Any Interlocked

Methods

static method Add(location: i64*, value: i64) -> i64
#

static

static method Add(location: i32*, value: i32) -> i32
#

static

static method Increment(location: i64*) -> i64
#

static

static method Increment(location: i32*) -> i32
#

static

static method Decrement(location: i64*) -> i64
#

static

static method Decrement(location: i32*) -> i32
#

static

static method Exchange(location: i64*, value: i64) -> i64
#

static

static method Exchange(location: i32*, value: i32) -> i32
#

static

static method CompareExchange(location: i64*, value: i64, comparand: i64) -> i64
#

static

static method CompareExchange(location: i32*, value: i32, comparand: i32) -> i32
#

static

static method Read(location: i64*) -> i64
#

static

Private and internal members (7)

static method AddAt64(at: i64*, value: i64) -> i64
#

private static

static method ExchangeAt64(at: i64*, value: i64) -> i64
#

private static

static method CompareAt64(at: i64*, expected: i64, value: i64) -> i64
#

private static

static method LoadAt64(at: i64*) -> i64
#

private static

static method AddAt32(at: i32*, value: i32) -> i32
#

private static

static method ExchangeAt32(at: i32*, value: i32) -> i32
#

private static

static method CompareAt32(at: i32*, expected: i32, value: i32) -> i32
#

private static

Inherited members (5)

Source

Interlocked as Larva HIR, decompiled from its Larva HIR.

System.Threading.Interlocked.hir
// Atomic operations on numbers in memory reached by pointers (unsafe code): `Interlocked.Add(&counts[i], 1)`.
public class System.Threading.Interlocked : System.Any
{
    static method AddAt64(at: i64*, value: i64) -> i64
    static method ExchangeAt64(at: i64*, value: i64) -> i64
    static method CompareAt64(at: i64*, expected: i64, value: i64) -> i64
    static method LoadAt64(at: i64*) -> i64
    static method AddAt32(at: i32*, value: i32) -> i32
    static method ExchangeAt32(at: i32*, value: i32) -> i32
    static method CompareAt32(at: i32*, expected: i32, value: i32) -> i32
    static method Add(location: i64*, value: i64) -> i64
    static method Add(location: i32*, value: i32) -> i32
    static method Increment(location: i64*) -> i64
    static method Increment(location: i32*) -> i32
    static method Decrement(location: i64*) -> i64
    static method Decrement(location: i32*) -> i32
    static method Exchange(location: i64*, value: i64) -> i64
    static method Exchange(location: i32*, value: i32) -> i32
    static method CompareExchange(location: i64*, value: i64, comparand: i64) -> i64
    static method CompareExchange(location: i32*, value: i32, comparand: i32) -> i32
    static method Read(location: i64*) -> i64
}
Esc