Skip to content

basic semaphore and mutex with both sync and async acquire methods

License

Notifications You must be signed in to change notification settings

toolbuilder/semaphore

Repository files navigation

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

About

basic semaphore and mutex with both sync and async acquire methods

Resources

License

Stars

Watchers

Forks

Packages

No packages published