diff options
Diffstat (limited to 'src/lib/vendor/async-mutex/tryaquire.ts')
| -rw-r--r-- | src/lib/vendor/async-mutex/tryaquire.ts | 21 |
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); +} |