Condition
Defined in: packages/async/src/synchro/condition.ts:31
A condition variable primitive.
Allows tasks to wait until they are signaled to continue.
Example
Section titled “Example”const mutex = new Mutex(); const condition = new Condition(); let ready = false;
// Task 1 async function task1() { await mutex.lock(); while (!ready) { await condition.wait(mutex); } // Proceed with task mutex.unlock(); }
// Task 2 async function task2() { ready = true; condition.signal(); // or condition.broadcast() to wake all waiting tasks }Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new Condition():
Condition
Returns
Section titled “Returns”Condition
Methods
Section titled “Methods”broadcast()
Section titled “broadcast()”broadcast():
void
Defined in: packages/async/src/synchro/condition.ts:40
Broadcast to all waiting tasks, if any.
Returns
Section titled “Returns”void
signal()
Section titled “signal()”signal():
void
Defined in: packages/async/src/synchro/condition.ts:35
Signal one waiting task, if any.
Returns
Section titled “Returns”void
wait()
Section titled “wait()”wait(
lock,signal?):Promise<void>
Defined in: packages/async/src/synchro/condition.ts:51
Wait until the condition is signaled.
Parameters
Section titled “Parameters”The lockable (mutex) to use for synchronization.
signal?
Section titled “signal?”AbortSignal | null
An optional AbortSignal to cancel the wait operation.
Returns
Section titled “Returns”Promise<void>
A promise that resolves when the condition is signaled.