@diotoborg/repellat-blanditiis-quis v6.12.127
Async Await Mutex Lock
Mutex locks for async functions with functionality to use keys for separate locks
Usage Instructions
Without Key
import { Lock } from "@diotoborg/repellat-blanditiis-quis";
let lock = new Lock();
async function serialTask() {
await lock.acquire();
try {
// Don't return a promise here as Promise may resolve after finally
// has executed
} finally {
lock.release();
}
}
With Key
All the keys will have their own separate locks and separate waiting lists. A key can have any type (eg. string, number, etc. or a custom type allowed by typescript as a Map key)
import { Lock } from "@diotoborg/repellat-blanditiis-quis";
let lock = new Lock<string>();
async function serialTask() {
await lock.acquire("myKey");
try {
// Don't return a promise here as Promise may resolve after finally
// has executed
}
finally {
lock.release("myKey");
}
}
async function serialTaskTwo() {
await lock.acquire("myKeyTwo");
try {
// Don't return a promise here as Promise may resolve after finally
// has executed
}
finally {
lock.release("myKeyTwo");
}
}
Checking if a lock is acquired or not
import { Lock } from "@diotoborg/repellat-blanditiis-quis";
let lock = new Lock();
async function serialTask() {
await lock.acquire();
console.log(lock.isAcquired()); // prints true
}
isAcquired()
with key
checks for the given key separately.
import { Lock } from "@diotoborg/repellat-blanditiis-quis";
let lock = new Lock<string>();
async function serialTask() {
await lock.acquire("myKey");
console.log(lock.isAcquired("myKey")) // prints true
}
Issues or Bugs
In case of any issues or bugs, please open a pull request here
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
1 year ago
1 year ago
1 year ago
9 months ago
1 year ago
9 months ago
9 months ago
10 months ago
12 months ago
12 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
12 months ago
12 months ago
11 months ago
12 months ago
12 months ago
12 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
9 months ago
10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
1 year ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
11 months ago
1 year ago
11 months ago
12 months ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
10 months ago
11 months ago
11 months ago
10 months ago
11 months ago
12 months ago
10 months ago
11 months ago
12 months ago
1 year ago
11 months ago
12 months ago
1 year ago
11 months ago
12 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
12 months ago
1 year ago
11 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago