UNPKG

@heroku-cli/command

Version:
12 lines (11 loc) 443 B
export type PromiseResolve<T> = (value: PromiseLike<T> | T) => void; export type PromiseReject = (reason?: any) => void; export type Task<T> = () => Promise<T>; export type Record<T> = [Task<T>, PromiseResolve<T>, PromiseReject]; export declare class Mutex<T> { private busy; private readonly queue; dequeue(): Promise<void> | undefined; execute(record: Record<T>): Promise<void>; synchronize(task: Task<T>): Promise<T>; }