WaiterQueue
Defined in: packages/core/src/promise/waiter-queue.ts:17
A FIFO queue of pending promise resolvers, with abort-signal cancellation built in once.
Type Parameters
Section titled “Type Parameters”T = void
The value a released waiter’s promise resolves with.
E = void
Per-waiter metadata a release policy can inspect via peek or
releaseMatching — e.g. how many permits a Semaphore acquisition needs,
or the target value a Counter wait is for. Defaults to void for
policies with nothing to inspect (a plain FIFO release, as Mutex and
Condition use).
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new WaiterQueue<
T,E>():WaiterQueue<T,E>
Returns
Section titled “Returns”WaiterQueue<T, E>
Accessors
Section titled “Accessors”Get Signature
Section titled “Get Signature”get size():
number
Defined in: packages/core/src/promise/waiter-queue.ts:21
Number of waiters currently queued.
Returns
Section titled “Returns”number
Methods
Section titled “Methods”enqueue()
Section titled “enqueue()”enqueue(
extra,signal?):Promise<T>
Defined in: packages/core/src/promise/waiter-queue.ts:39
Registers a new waiter and returns a promise that resolves with the value
passed to whichever release call resolves it, or rejects if signal aborts
first.
Parameters
Section titled “Parameters”E
Per-waiter metadata, inspected later via peek or
releaseMatching.
signal?
Section titled “signal?”AbortSignal | null
Optional abort signal to cancel the wait.
Returns
Section titled “Returns”Promise<T>
peek()
Section titled “peek()”peek():
E|undefined
Defined in: packages/core/src/promise/waiter-queue.ts:26
The metadata of the longest-waiting entry, or undefined if empty.
Returns
Section titled “Returns”E | undefined
releaseAll()
Section titled “releaseAll()”releaseAll(
value):number
Defined in: packages/core/src/promise/waiter-queue.ts:75
Removes and resolves every currently queued entry, in queue order.
Parameters
Section titled “Parameters”T
Returns
Section titled “Returns”number
releaseMatching()
Section titled “releaseMatching()”releaseMatching(
predicate,value):number
Defined in: packages/core/src/promise/waiter-queue.ts:89
Removes and resolves every entry whose metadata matches predicate, in
queue order — for release policies that aren’t a FIFO prefix (e.g.
Counter, which releases whichever waiters target the new value,
regardless of queue position).
Parameters
Section titled “Parameters”predicate
Section titled “predicate”(extra) => boolean
T
Returns
Section titled “Returns”number
releaseNext()
Section titled “releaseNext()”releaseNext(
value):boolean
Defined in: packages/core/src/promise/waiter-queue.ts:68
Removes and resolves the longest-waiting entry, if any.
Parameters
Section titled “Parameters”T
Returns
Section titled “Returns”boolean