blob: bbbdc6b2bc21eb2279725abf505cc671a067a9ab (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
export interface SemaphoreInterface {
acquire(
weight?: number,
priority?: number
): Promise<[number, SemaphoreInterface.Releaser]>;
runExclusive<T>(
callback: SemaphoreInterface.Worker<T>,
weight?: number,
priority?: number
): Promise<T>;
waitForUnlock(weight?: number, priority?: number): Promise<void>;
isLocked(): boolean;
getValue(): number;
setValue(value: number): void;
release(weight?: number): void;
cancel(): void;
}
export namespace SemaphoreInterface {
export interface Releaser {
(): void;
}
export interface Worker<T> {
(value: number): Promise<T> | T;
}
}
|