{"_id":"lock","_rev":"29-413d401337654c4dd32c29091c966d2c","name":"lock","description":"lock asynchronous resources.","dist-tags":{"latest":"1.1.0"},"versions":{"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","_id":"lock@0.0.0","description":"<img src=https://secure.travis-ci.org/Dominic Tarr/0.png?branch=master>","dist":{"shasum":"17f137d580edd1f9f102b22970b21e1ea5108ce8","tarball":"https://registry.npmjs.org/lock/-/lock-0.0.0.tgz","integrity":"sha512-09ceYnc8Nf5K4DjUenRtx7Q68hK/RxqHbZcGIW5sQVSloQ3UfWdVsidYtosvJdgyqPRwsD1FJwSlG4Ap+gSGMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID13SBNIl184/7EGc26LJt+bSSgu7MSKPiBj476BQXx/AiBDSxvj2pnUo7pLcEkCDbM3rA5JYWOoJDK8ZfkVM+pqgA=="}]},"_from":".","_npmVersion":"1.2.3","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"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","_id":"lock@0.0.1","description":"<img src=https://secure.travis-ci.org/Dominic Tarr/0.png?branch=master>","dist":{"shasum":"6f0614ee00db3a9f49ab4e2ca7500c31b9ed2707","tarball":"https://registry.npmjs.org/lock/-/lock-0.0.1.tgz","integrity":"sha512-U8dD8nHneF9YXumPKdBBAxixbMyRYp32Tl0+gYhsf8GzE/52kqjqLDbqbMPBmI7JIkOjoAE35D6MuiZFNk50lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfGe5JLLpdyE8vkmi4EmNCwqzI94/B/mvlHnuOj+5o9AIhANyfBLyzD9FP2PYM/4jqTsq4pNYDwxODcuyv85dnqYgj"}]},"_from":".","_npmVersion":"1.2.3","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"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","_id":"lock@0.0.2","description":"lock asynchronous resources.","dist":{"shasum":"c447ea93735fd10118d3389be6bd8baa1ee4d20b","tarball":"https://registry.npmjs.org/lock/-/lock-0.0.2.tgz","integrity":"sha512-OqprW0yCeUC/7OL5fBntZElw/bYXEzFr7eI6G1QxPbA9BDT8Us/QTfhYqQMyRczYegnR1jBXmRTd2F17Xy8BMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDyU8dHkLFIvlNeooX7t+pVEX4Zdvt4G/4hRzIad6Ci3AiBzGAoLvGcLpam7OjITa7wG/HVg9Xra56M52lk3svS5dg=="}]},"_from":".","_npmVersion":"1.2.3","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"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","_id":"lock@0.0.3","description":"lock asynchronous resources.","dist":{"shasum":"21e0d04e86f446b1fc970c103a1ccdec5ce6a26b","tarball":"https://registry.npmjs.org/lock/-/lock-0.0.3.tgz","integrity":"sha512-66RQiGOjyim07OcyGU9X4USio5OIlaN7GTLiJDv/lBZty1qx4S0s8JM3nbQre3OJHoeBoQ2FdtusH9875HeV0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCz2/mgCS6AKNFKwAMkv0JZfEmZWrvK+wkD4En3L+HRWwIgR44VYhqyO3V4Jj+jL0h4bOGW2ic7TxCUfVjKH3kLfiM="}]},"_from":".","_npmVersion":"1.2.3","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"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","description":"lock asynchronous resources.","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"_id":"lock@0.0.4","dist":{"shasum":"ef5b1788459fee18f2c566a0173494fd6a349f24","tarball":"https://registry.npmjs.org/lock/-/lock-0.0.4.tgz","integrity":"sha512-qOGSvI/WrHItf5jTi3+kSdGwpw6J4lMaSw8d+x3FUr/hYW420h7Z8KTc36r+7pAyAi70YHuuDPWvh4j/xzBUcA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICyvLFLUOr4KQUb7bxS1xzjsiqUlqqKXFXLVa646nrWcAiBm2+XPVkcUDU5LzsNV5PDdpki4ja5/eR1kM6lSd1IAxQ=="}]},"_from":".","_npmVersion":"1.2.30","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"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","description":"lock asynchronous resources.","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"_id":"lock@0.1.0","dist":{"shasum":"3b41ed818b45cc105a6e19c7e174119196ee7fa6","tarball":"https://registry.npmjs.org/lock/-/lock-0.1.0.tgz","integrity":"sha512-21LFA5SZZ6+H9zznvdmC2EAsAPzvh0Tq1w/lkaNXtMKTfvtHXul/XrmrlFNdpvxiSSYQe6TT8EFIZjAszM46Hg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICT7u8JSCa0qJw1D9Exo138HSK5MBsLUV3QdtpzX+AnMAiBwYUWYGzEv9jU/bxiakKX2p2oLjCCmRt38ZpbK8wNwqw=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"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":"dominictarr","email":"dominic.tarr@gmail.com"}],"dist":{"shasum":"84edef91833be2a7e90e88c3aff0361dcc6038a7","tarball":"https://registry.npmjs.org/lock/-/lock-0.1.2.tgz","integrity":"sha512-5bFQypMsv558+1XPHFGyw0UQz08X/4/ufAxPIYiiu6NOppKb9rjVnQIG5CSHU8f1ILnsU35sOmEeJvzl/Q8f/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA8pb35B6oWj2woL3HM5LmuKTEdhTJPrHQOulG5uKg5RAiBRmIieIusUGSGoz9pcba9kzb9d89+Xq25ZrYy8FlURDQ=="}]},"directories":{}},"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","tarball":"https://registry.npmjs.org/lock/-/lock-0.1.3.tgz","integrity":"sha512-MKANZL3eJF9xDKJa9t5VkOSt0XnaaWW5c6l8VxPTwbmZANDD7gHmDbcXCrmJzp1jr3tABorYYPP/RaeLJGK1wQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCItV7Zwq4/7Aun3Xb6Osr2VEPttoG+oSbHMMytc+W2LwIhAMRzNdwsEjMPHblVRQuwmNR/3gOSsia1FnUQN7Yh7kYn"}]},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/lock-0.1.3.tgz_1471572688667_0.7340718908235431"},"directories":{}},"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","tarball":"https://registry.npmjs.org/lock/-/lock-0.1.4.tgz","integrity":"sha512-IcEe2R+NA7WgM622ppgmJFCFZl20f2owsA1YiJg7qpvO0wdOgOuZdfhQMxCYXdESVX+QIF/eikE4hB5ZPM2ipA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuTEsAXh2AZExTX4knq1eAotCABXy1it/aXB23ITxhmwIgX0bf0lYy6EGgmqW1JSzl8Jc2V0Rrkj5De8ymXpOGUJk="}]},"maintainers":[{"email":"raymondmay@gmail.com","name":"raymondmayjr"},{"email":"dominic.tarr@gmail.com","name":"dominictarr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lock-0.1.4.tgz_1499949795813_0.7141403153073043"},"directories":{}},"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","tarball":"https://registry.npmjs.org/lock/-/lock-1.1.0.tgz","integrity":"sha512-NZQIJJL5Rb9lMJ0Yl1JoVr9GSdo4HTPsUEWsSFzB8dE8DSoiLCVavWZPi7Rnlv/o73u6I24S/XYc/NmG4l8EKA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVi2xny33eLTkMN3FQnZ4ymyf0SlhGIsO5ewj0/4yPIAiEAsp+Uvg/WmHd4UpbWIcBxsSTnvQ4jV0L3y4aEmpeOmuQ="}]},"maintainers":[{"email":"raymondmay@gmail.com","name":"raymondmayjr"},{"email":"dominic.tarr@gmail.com","name":"dominictarr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lock-1.1.0.tgz_1506006379321_0.9288774931337684"},"directories":{}}},"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","maintainers":[{"email":"raymondmay@gmail.com","name":"raymondmayjr"}],"time":{"modified":"2022-06-19T13:25:40.268Z","created":"2013-02-03T04:58:43.924Z","0.0.0":"2013-02-03T04:58:46.759Z","0.0.1":"2013-02-03T05:46:18.118Z","0.0.2":"2013-02-03T05:57:50.424Z","0.0.3":"2013-02-11T07:21:50.113Z","0.0.4":"2013-06-18T01:21:31.438Z","0.1.0":"2013-12-08T09:05:37.563Z","0.1.2":"2015-03-26T00:38:17.745Z","0.1.3":"2016-08-19T02:11:30.754Z","0.1.4":"2017-07-13T12:43:16.696Z","1.1.0":"2017-09-21T15:06:21.230Z"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"http://dominictarr.com"},"repository":{"type":"git","url":"git://github.com/dominictarr/lock.git"},"homepage":"https://github.com/dominictarr/lock","bugs":{"url":"https://github.com/dominictarr/lock/issues"},"license":"MIT","readmeFilename":"README.md","users":{"jakub.knejzlik":true,"guananddu":true,"erikvold":true,"ziflex":true}}