{"_id":"lock","_rev":"312053","name":"lock","description":"lock asynchronous resources.","dist-tags":{"latest":"1.1.0"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"time":{"modified":"2021-06-03T19:52:40.000Z","created":"2013-02-03T04:58:46.759Z","1.1.0":"2017-09-21T15:06:21.230Z","0.1.4":"2017-07-13T12:43:16.696Z","0.1.3":"2016-08-19T02:11:30.754Z","0.1.2":"2015-03-26T00:38:17.745Z","0.1.0":"2013-12-08T09:05:37.563Z","0.0.4":"2013-06-18T01:21:31.438Z","0.0.3":"2013-02-11T07:21:50.113Z","0.0.2":"2013-02-03T05:57:50.424Z","0.0.1":"2013-02-03T05:46:18.118Z","0.0.0":"2013-02-03T04:58:46.759Z"},"users":{"jakub.knejzlik":true,"erikvold":true,"guananddu":true,"ziflex":true},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"versions":{"1.1.0":{"name":"lock","version":"1.1.0","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{},"devDependencies":{"tape":"~0.2.2"},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"types":"index.d.ts","author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","gitHead":"495d435da793452852279036853a6b7cf87368df","description":"lock asynchronous resources.","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"_id":"lock@1.1.0","_shasum":"53157499d1653b136ca66451071fca615703fa55","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.4","_npmUser":{"name":"raymondmayjr","email":"raymondmay@gmail.com"},"dist":{"shasum":"53157499d1653b136ca66451071fca615703fa55","size":2956,"noattachment":false,"key":"/lock/-/lock-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-1.1.0.tgz"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lock-1.1.0.tgz_1506006379321_0.9288774931337684"},"directories":{},"publish_time":1506006381230,"_cnpm_publish_time":1506006381230,"_hasShrinkwrap":false},"0.1.4":{"name":"lock","version":"0.1.4","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{},"devDependencies":{"tape":"~0.2.2"},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"types":"index.d.ts","author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","gitHead":"94284d24ad8d297edad2505bc62ee93950f79d37","description":"lock asynchronous resources.","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"_id":"lock@0.1.4","_shasum":"fec7deaef17e7c3a0a55e1da042803e25d91745d","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.7.4","_npmUser":{"name":"raymondmayjr","email":"raymondmay@gmail.com"},"dist":{"shasum":"fec7deaef17e7c3a0a55e1da042803e25d91745d","size":2926,"noattachment":false,"key":"/lock/-/lock-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.1.4.tgz"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lock-0.1.4.tgz_1499949795813_0.7141403153073043"},"directories":{},"publish_time":1499949796696,"_hasShrinkwrap":false,"_cnpm_publish_time":1499949796696},"0.1.3":{"name":"lock","version":"0.1.3","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{},"devDependencies":{"tape":"~0.2.2"},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","gitHead":"279b14c14ace0ffacc0939fdfa817a33794f7120","description":"lock asynchronous resources.","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"_id":"lock@0.1.3","_shasum":"f66c1caa0c41956e1426608039ed59b71bdf1854","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"dist":{"shasum":"f66c1caa0c41956e1426608039ed59b71bdf1854","size":2770,"noattachment":false,"key":"/lock/-/lock-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.1.3.tgz"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/lock-0.1.3.tgz_1471572688667_0.7340718908235431"},"directories":{},"publish_time":1471572690754,"_cnpm_publish_time":1471572690754,"_hasShrinkwrap":false},"0.1.2":{"name":"lock","version":"0.1.2","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{},"devDependencies":{"tape":"~0.2.2"},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","gitHead":"da4633c744e8dae86b007b0c50e31917855141e9","description":"lock asynchronous resources.","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"_id":"lock@0.1.2","_shasum":"84edef91833be2a7e90e88c3aff0361dcc6038a7","_from":".","_npmVersion":"2.4.1","_nodeVersion":"0.10.35","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"dist":{"shasum":"84edef91833be2a7e90e88c3aff0361dcc6038a7","size":2736,"noattachment":false,"key":"/lock/-/lock-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.1.2.tgz"},"directories":{},"publish_time":1427330297745,"_cnpm_publish_time":1427330297745,"_hasShrinkwrap":false},"0.1.0":{"name":"lock","version":"0.1.0","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{},"devDependencies":{"tape":"~0.2.2"},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","readmeFilename":"README.md","description":"lock asynchronous resources.","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"_id":"lock@0.1.0","dist":{"shasum":"3b41ed818b45cc105a6e19c7e174119196ee7fa6","size":2730,"noattachment":false,"key":"/lock/-/lock-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"directories":{},"publish_time":1386493537563,"_cnpm_publish_time":1386493537563,"_hasShrinkwrap":false},"0.0.4":{"name":"lock","version":"0.0.4","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{},"devDependencies":{"tape":"~0.2.2"},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","readmeFilename":"README.md","description":"lock asynchronous resources.","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"_id":"lock@0.0.4","dist":{"shasum":"ef5b1788459fee18f2c566a0173494fd6a349f24","size":2625,"noattachment":false,"key":"/lock/-/lock-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.0.4.tgz"},"_from":".","_npmVersion":"1.2.30","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"directories":{},"publish_time":1371518491438,"_cnpm_publish_time":1371518491438,"_hasShrinkwrap":false},"0.0.3":{"name":"lock","version":"0.0.3","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{"tape":"~0.2.2"},"devDependencies":{},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","readmeFilename":"README.md","_id":"lock@0.0.3","description":"lock asynchronous resources.","dist":{"shasum":"21e0d04e86f446b1fc970c103a1ccdec5ce6a26b","size":2614,"noattachment":false,"key":"/lock/-/lock-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.0.3.tgz"},"_from":".","_npmVersion":"1.2.3","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"directories":{},"publish_time":1360567310113,"_cnpm_publish_time":1360567310113,"_hasShrinkwrap":false},"0.0.2":{"name":"lock","version":"0.0.2","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{"tape":"~0.2.2"},"devDependencies":{},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","readmeFilename":"README.md","_id":"lock@0.0.2","description":"lock asynchronous resources.","dist":{"shasum":"c447ea93735fd10118d3389be6bd8baa1ee4d20b","size":2521,"noattachment":false,"key":"/lock/-/lock-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.0.2.tgz"},"_from":".","_npmVersion":"1.2.3","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"directories":{},"publish_time":1359871070424,"_cnpm_publish_time":1359871070424,"_hasShrinkwrap":false},"0.0.1":{"name":"lock","version":"0.0.1","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{"tape":"~0.2.2"},"devDependencies":{},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","readmeFilename":"README.md","_id":"lock@0.0.1","description":"<img src=https://secure.travis-ci.org/Dominic Tarr/0.png?branch=master>","dist":{"shasum":"6f0614ee00db3a9f49ab4e2ca7500c31b9ed2707","size":2301,"noattachment":false,"key":"/lock/-/lock-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.0.1.tgz"},"_from":".","_npmVersion":"1.2.3","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"directories":{},"publish_time":1359870378118,"_cnpm_publish_time":1359870378118,"_hasShrinkwrap":false},"0.0.0":{"name":"lock","version":"0.0.0","homepage":"https://github.com/dominictarr/lock","repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"dependencies":{"tape":"~0.2.2"},"devDependencies":{},"scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"license":"MIT","readmeFilename":"README.md","_id":"lock@0.0.0","description":"<img src=https://secure.travis-ci.org/Dominic Tarr/0.png?branch=master>","dist":{"shasum":"17f137d580edd1f9f102b22970b21e1ea5108ce8","size":2283,"noattachment":false,"key":"/lock/-/lock-0.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/lock/download/lock-0.0.0.tgz"},"_from":".","_npmVersion":"1.2.3","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"raymondmayjr","email":"raymondmay@gmail.com"}],"directories":{},"publish_time":1359867526759,"_cnpm_publish_time":1359867526759,"_hasShrinkwrap":false}},"readme":"# lock\r\n\r\nlock asynchronous resources.\r\n\r\n## Simple Example\r\n\r\n``` js\r\nvar Lock = require('lock').Lock\r\nvar lock = Lock()\r\n\r\nlock('key', function (release) { //called when resource is available.\r\n\r\n  //do an async operation, and wrap the callback with release.\r\n  someAsyncOperation(args,..., release(function (err) {\r\n    //'key' is now unlocked!\r\n  })\r\n})\r\n```\r\n\r\n## Multiple Locks at Once.\r\n\r\n``` js\r\nvar Lock = require('lock').Lock\r\nvar lock = Lock()\r\n\r\nlock(['A', 'B', 'C'], function (release) { //called, when ALL\r\n                                           //resources are available.\r\n\r\n  //do an async operation, and wrap the callback with release(cb)\r\n  someAsyncOperation(args,..., release(function (err) {\r\n    //A, B & C are now unlocked!\r\n  })\r\n})\r\n```\r\n\r\n## Lock with optional callback.\r\n\r\n``` js\r\nvar Lock = require('lock').Lock\r\nvar lock = Lock()\r\n\r\nlock('cache', function(release) { //called when no one is writing to cache\r\n\t//we do not care if this fails since its a cache so no callback needed\r\n\tfs.writeFile(fileCache, ... , release())\r\n})\r\n```\r\n\r\nused in [level-update](https://github.com/dominictarr/level-update)\r\n\r\n## License\r\n\r\nMIT\r\n\r\n","_attachments":{},"homepage":"https://github.com/dominictarr/lock","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"license":"MIT"}