aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/vendor/async-mutex/interface.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/vendor/async-mutex/interface.ts')
-rw-r--r--src/lib/vendor/async-mutex/interface.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/vendor/async-mutex/interface.ts b/src/lib/vendor/async-mutex/interface.ts
new file mode 100644
index 0000000..736b338
--- /dev/null
+++ b/src/lib/vendor/async-mutex/interface.ts
@@ -0,0 +1,26 @@
+export interface MutexInterface {
+ acquire(priority?: number): Promise<MutexInterface.Releaser>;
+
+ runExclusive<T>(
+ callback: MutexInterface.Worker<T>,
+ priority?: number
+ ): Promise<T>;
+
+ waitForUnlock(priority?: number): Promise<void>;
+
+ isLocked(): boolean;
+
+ release(): void;
+
+ cancel(): void;
+}
+
+export namespace MutexInterface {
+ export interface Releaser {
+ (): void;
+ }
+
+ export interface Worker<T> {
+ (): Promise<T> | T;
+ }
+}