This library provides Semaphore
and Mutex
implementations. You can acquire a lock with either async or sync methods.
npm install @toolbuilder/semaphore
The API documentation is here
import { Mutex } from '@toolbuilder/semaphore'
const mutex = new Mutex()
const release = await mutex.acquire()
release() // to release mutex
import { Mutex, Semaphore } from '@toolbuilder/semaphore'
const semaphore = new Semaphore(5) // max locks that can be acquired
await semaphore.acquire()
semaphore.release() // to release lock
Contributions are welcome. Please create a pull request.
- I use pnpm instead of npm.
- Package verification requires pnpm to be installed globally.
npm install -g pnpm
pnpm install
pnpm test
to run unit testspnpm run check:packfile
to test the pack file against Node ES and CommonJS projects, as well as Electron.pnpm run check
to validate the package is ready for commit
This project uses Github issues.
MIT