Skip to content

Latest commit

 

History

History
49 lines (33 loc) · 1.14 KB

README.md

File metadata and controls

49 lines (33 loc) · 1.14 KB

Semaphore and Mutex

This library provides Semaphore and Mutex implementations. You can acquire a lock with either async or sync methods.

Installation

npm install @toolbuilder/semaphore

Use

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

Contributing

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 tests
    • pnpm 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

Issues

This project uses Github issues.

License

MIT