@golem-sdk/golem-js
Version:
NodeJS and WebBrowser SDK for building apps running on Golem Network
29 lines (28 loc) • 812 B
TypeScript
/**
* A queue of acquirers waiting for an item.
* use `get` to queue up for the next available item.
* use `put` to give the item to the next acquirer.
*/
export declare class AcquireQueue<T> {
private queue;
private abortController;
/**
* Release (reject) all acquirers.
* Essentially this is a way to reset the queue.
*/
releaseAll(): void;
/**
* Queue up for the next available item.
*/
get(signalOrTimeout?: number | AbortSignal): Promise<T>;
/**
* Are there any acquirers waiting for an item?
*/
hasAcquirers(): boolean;
/**
* Give the item to the next acquirer.
* If there are no acquirers, throw an error. You should check `hasAcquirers` before calling this method.
*/
put(item: T): void;
size(): number;
}