
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
Bike shed mutex lock implementation in node.js
npm install mutexify
Hasn't this been done before? Yes, but the specific semantics of this made some of my code simpler.
var mutexify = require('mutexify')
var lock = mutexify()
lock(function(release) {
console.log('i am now locked')
setTimeout(function() {
release()
}, 1000)
})
lock(function(release) {
console.log('1 second later')
release()
})
A common pattern is to call a callback after you release the lock.
To do this in a one-liner pass the callback and the value to release(cb, err, value)
var write = function(data, cb) {
lock(function(release) {
fs.writeFile('locked-file.txt', data, release.bind(null, cb))
})
}
mutexify guarantees that the order that a mutex was requested in is the order that access will be given.
You can read the lock's current state on the lock.locked property.
mutexify provides a Promise-based alternative.
const mutexify = require('mutexify/promise')
;(async () => {
var lock = mutexify()
var release = await lock()
console.log('i am now locked')
setTimeout(function () {
release()
}, 1000)
release = await lock()
console.log('1 second later')
release()
})()
MIT
The async-mutex package provides a similar functionality to mutexify, offering mutex and read-write lock implementations. It supports promises, making it more suitable for modern asynchronous JavaScript code compared to mutexify, which uses callbacks.
This package offers semaphore and mutex implementations that work with async/await syntax, providing a more modern and readable approach to handling concurrency in Node.js applications compared to the callback-based approach of mutexify.
FAQs
mutex lock for javascript
The npm package mutexify receives a total of 1,331,520 weekly downloads. As such, mutexify popularity was classified as popular.
We found that mutexify demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.