lock

lock asynchronous resources.

npm install lock
39 downloads in the last day
231 downloads in the last week
758 downloads in the last month

lock

lock asynchronous resources.

Simple Example

var Lock = require('lock')
var lock = Lock()

lock('key', function (release) { //called when resource is available.

  //do an async operation, and wrap the callback with release.
  someAsyncOperation(args,..., release(function (err) {
    //'key' is now unlocked!
  })
})

Multiple Locks at Once.

var Lock = require('lock')
var lock = Lock()

lock(['A', 'B', 'C'], function (release) { //called, when ALL
                                           //resources are available.

  //do an async operation, and wrap the callback with release(cb)
  someAsyncOperation(args,..., release(function (err) {
    //A, B & C are now unlocked!
  })
})

Lock with optional callback.

var Lock = require('lock');
var lock = Lock();

lock('cache', function(release) { //called when no one is writing to cache
    //we do not care if this fails since its a cache so no callback needed
    fs.writeFile(fileCache, ... , release())
})

used in level-update

License

MIT

npm loves you