From 80d0342636056bc839517b64fd11708abea70237 Mon Sep 17 00:00:00 2001 From: memdmp Date: Wed, 20 Aug 2025 12:46:01 +0000 Subject: feat: locks :3 --- src/lib/vendor/async-mutex/tryaquire.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/lib/vendor/async-mutex/tryaquire.ts (limited to 'src/lib/vendor/async-mutex/tryaquire.ts') 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); +} -- cgit v1.2.3