aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/vendor/async-mutex/tryaquire.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/vendor/async-mutex/tryaquire.ts')
-rw-r--r--src/lib/vendor/async-mutex/tryaquire.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib/vendor/async-mutex/tryaquire.ts b/src/lib/vendor/async-mutex/tryaquire.ts
new file mode 100644
index 0000000..359bafa
--- /dev/null
+++ b/src/lib/vendor/async-mutex/tryaquire.ts
@@ -0,0 +1,21 @@
+import { E_ALREADY_LOCKED } from './errors';
+import MutexInterface from './mutex';
+import type { SemaphoreInterface } from './semaphoreinterface';
+import { withTimeout } from './withtimeout';
+
+export function tryAcquire(
+ mutex: MutexInterface,
+ alreadyAcquiredError?: Error
+): MutexInterface;
+export function tryAcquire(
+ semaphore: SemaphoreInterface,
+ alreadyAcquiredError?: Error
+): SemaphoreInterface;
+// eslint-disable-next-lisne @typescript-eslint/explicit-module-boundary-types
+export function tryAcquire(
+ sync: MutexInterface | SemaphoreInterface,
+ alreadyAcquiredError = E_ALREADY_LOCKED
+): typeof sync {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ return withTimeout(sync as any, 0, alreadyAcquiredError);
+}