wasm-metering
Version:
injects metering into webassembly binaries
51 lines (35 loc) • 1.07 kB
Markdown
# mutexify
Bike shed mutex lock implementation in node.js
```
npm install mutexify
```
[](http://travis-ci.org/mafintosh/mutexify)
Hasn't this been done before? Yes, but the specific semantics of this made some of my code simpler.
## Usage
``` js
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)`
``` js
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.
## License
MIT