class · System.Threading

Condition

public class System.Threading.Condition : System.Any

Waiting until another thread says something changed: Wait releases the mutex (which the caller holds) while it waits and takes it back before it returns. Signal wakes one waiter, Broadcast all. Wake-ups can be spurious: wait in a loop that checks what is waited for.

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

Inheritance

Base classes
Any Condition

Constructors

constructor Condition()
#

Methods

method Wait(mutex: System.Threading.Mutex) -> void
#
method Wait(mutex: System.Threading.Mutex, milliseconds: i32) -> bool
#

Waits at most milliseconds: false when the time ran out.

method Signal() -> void
#
method Broadcast() -> void
#
method Dispose() -> void
#

Frees it (it must not be used after; an undisposed one is freed when the object dies).

method destroy() -> void
#

override

Private and internal members (6)

field handle: i64
#

private

static method New() -> i64
#

private static

static method WaitNative(condition: i64, mutex: i64, milliseconds: i64) -> i64
#

private static

static method SignalNative(condition: i64) -> void
#

private static

static method BroadcastNative(condition: i64) -> void
#

private static

static method Free(condition: i64) -> void
#

private static

Inherited members (4)

Source

Condition as Larva HIR, decompiled from its Larva HIR.

System.Threading.Condition.hir
// Waiting until another thread says something changed: Wait releases the mutex (which the caller holds) while it
// waits and takes it back before it returns. Signal wakes one waiter, Broadcast all. Wake-ups can be spurious: wait in
// a loop that checks what is waited for.
public class System.Threading.Condition : System.Any
{
    field handle: i64
    static method New() -> i64
    static method WaitNative(condition: i64, mutex: i64, milliseconds: i64) -> i64
    static method SignalNative(condition: i64) -> void
    static method BroadcastNative(condition: i64) -> void
    static method Free(condition: i64) -> void
    constructor Condition()
    method Wait(mutex: System.Threading.Mutex) -> void
    // Waits at most `milliseconds`: false when the time ran out.
    method Wait(mutex: System.Threading.Mutex, milliseconds: i32) -> bool
    method Signal() -> void
    method Broadcast() -> void
    // Frees it (it must not be used after; an undisposed one is freed when the object dies).
    method Dispose() -> void
    method destroy() -> void
}
Esc