{"_id":"mutexify","_rev":"16-5d4b46277e238544e2dc6db371b26528","name":"mutexify","description":"mutex lock for javascript","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.0":{"name":"mutexify","version":"1.0.0","description":"mutex lock for javascript","main":"index.js","dependencies":{},"devDependencies":{"tape":"^3.0.2"},"scripts":{"test":"tape test.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/mutexify.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/mutexify/issues"},"keywords":["mutex","lock"],"homepage":"https://github.com/mafintosh/mutexify","gitHead":"2496a3bb4154831760e6357567b8453882ae0808","_id":"mutexify@1.0.0","_shasum":"dfd0f58232bb977462d0db278061f8202b93b595","_from":".","_npmVersion":"2.1.7","_nodeVersion":"0.10.33","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"maintainers":[{"name":"mafintosh","email":"mathiasbuus@gmail.com"}],"dist":{"shasum":"dfd0f58232bb977462d0db278061f8202b93b595","tarball":"https://registry.npmjs.org/mutexify/-/mutexify-1.0.0.tgz","integrity":"sha512-tbbjLzUl68lXpiGcNnk8ALa9VQIZLNsRrKSTDxtW3VUm8/+YQU7IiYGwcI5bzKngexn3wNSO1NuYB56aodcogg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHHkHXKOEHKMnfFb91KUELyznj3q+nciaVmfkdIBvR2rAiEAsbbmdKOjHDddyayYzk0uh7QK4MzEDM+AuUyq8GzCdJ8="}]},"directories":{}},"1.0.1":{"name":"mutexify","version":"1.0.1","description":"mutex lock for javascript","main":"index.js","dependencies":{},"devDependencies":{"tape":"^3.0.2"},"scripts":{"test":"tape test.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/mutexify.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/mutexify/issues"},"keywords":["mutex","lock"],"homepage":"https://github.com/mafintosh/mutexify","gitHead":"fb259d8981abc4f56cf7f81e10ef3259e4bafc79","_id":"mutexify@1.0.1","_shasum":"9880206795d89e75efc1bcb4b4f52ebbd796e5e7","_from":".","_npmVersion":"2.1.7","_nodeVersion":"0.10.33","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"maintainers":[{"name":"mafintosh","email":"mathiasbuus@gmail.com"}],"dist":{"shasum":"9880206795d89e75efc1bcb4b4f52ebbd796e5e7","tarball":"https://registry.npmjs.org/mutexify/-/mutexify-1.0.1.tgz","integrity":"sha512-DFEDJKo0RaLSxN47hu5vqfDSDKmxGtp0xWNvueT3FX84s6Cm7VqOPJVxCnsAHUT3Lxa3kGAeqDtAHduDdYkKjQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxRzYEXV8uCB74HPpyYnEa0tey6uVxY0Y1+8gKWy2jfQIgWfTwa9NQsoh8vTrcWg3toJu5zojeKouBZk0ROOg7P9I="}]},"directories":{}},"1.1.0":{"name":"mutexify","version":"1.1.0","description":"mutex lock for javascript","main":"index.js","dependencies":{},"devDependencies":{"tape":"^3.0.2"},"scripts":{"test":"tape test.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/mutexify.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/mutexify/issues"},"keywords":["mutex","lock"],"homepage":"https://github.com/mafintosh/mutexify","gitHead":"e2158d5c6c16c885d17d9062cea05d0dad682d31","_id":"mutexify@1.1.0","_shasum":"bbe017743e544227ee58034cd10f159921f1844d","_from":".","_npmVersion":"2.9.0","_nodeVersion":"2.0.1","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"maintainers":[{"name":"mafintosh","email":"mathiasbuus@gmail.com"}],"dist":{"shasum":"bbe017743e544227ee58034cd10f159921f1844d","tarball":"https://registry.npmjs.org/mutexify/-/mutexify-1.1.0.tgz","integrity":"sha512-s13+utJ/ogfALW1cL8DQFRi7jRvtEWeGpz1Q/r3mg4ZzuMQncDDIQhqfFXj2rh84+VoIL+wkQ9KAMjF0Q9Pz4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyeYHAlO3QND/EJgNOk8aUS5O3SLOHiIQb+oXG1fML+wIgLdFbq4om08zCU1tHlnORiGqtGkq36bHhdv/JZRlIYn4="}]},"directories":{}},"1.2.0":{"name":"mutexify","version":"1.2.0","description":"mutex lock for javascript","main":"index.js","dependencies":{},"devDependencies":{"tape":"^3.0.2"},"scripts":{"test":"tape test.js"},"repository":{"type":"git","url":"git+https://github.com/mafintosh/mutexify.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/mutexify/issues"},"keywords":["mutex","lock"],"homepage":"https://github.com/mafintosh/mutexify","gitHead":"9e157b322806fdd8c52b0ecefdf3d8ad741b0575","_id":"mutexify@1.2.0","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"integrity":"sha512-oprzxd2zhfrJqEuB98qc1dRMMonClBQ57UPDjnbcrah4orEMTq1jq3+AcdFe5ePzdbJXI7zmdhfftIdMnhYFoQ==","shasum":"45597975a2b035f56dcf61ff15cc8d73c28e7639","tarball":"https://registry.npmjs.org/mutexify/-/mutexify-1.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC8USYv8Hp61ZRHijXhYa84y+S6qYqJaasBnDfCYPDAvAiArf9LR5RI3eSFvnQkeSlvzKo+q8wV1W3JGMjxXiy02JA=="}]},"maintainers":[{"name":"mafintosh","email":"mathiasbuus@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mutexify-1.2.0.tgz_1502347301681_0.04014034825377166"},"directories":{}},"1.3.0":{"name":"mutexify","version":"1.3.0","description":"mutex lock for javascript","main":"index.js","dependencies":{},"devDependencies":{"standard":"^14.3.3","tape":"^3.0.2"},"scripts":{"test":"tape test.js","posttest":"npm run lint","lint":"standard"},"repository":{"type":"git","url":"git+https://github.com/mafintosh/mutexify.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/mutexify/issues"},"keywords":["mutex","lock"],"homepage":"https://github.com/mafintosh/mutexify","gitHead":"f0fa7a82c4e2c2b30ad3fb7ce7ef79546f45ec25","_id":"mutexify@1.3.0","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-WNPlgZ3AHETGSa4jeRP4aW6BPQ/a++MwoMFFIgrDg80+m70mbxuNOrevANfBDmur82zxTFAY3OwvMAvqrkV2sA==","shasum":"b32bee9319050963cf6b5d5bce7fbd6ea08ab609","tarball":"https://registry.npmjs.org/mutexify/-/mutexify-1.3.0.tgz","fileCount":7,"unpackedSize":5633,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqahuCRA9TVsSAnZWagAAolAP/A+bHOC0nI3shTyO0asb\nMiMWTfSVKS/rP+PgNkx53Drix0LYbpNx9ZO0zVURH3Hg7iZXZj7xgtO9zDMZ\nWLX71icQf4Pw988WpAcGW+ucUzVBRApOGOelS7kMy7Ge7WnitUFKACnOwA1C\np9QU5y9KT49C5gjjdYuVpf328ln2hwcVzzz4BUT5NJdxUuXM1kBHR5eJUQTZ\ncAwLsukekG3hWWNTSqYgv5wUQVvNG9QEdNdjwH+WOZuz7Yut6fCrOCsmH6pR\ns3zE+uavCyauXoAcvxbBTPT0khtR8nQGE6AfuhJyachV9jZgzv73PKeNpvZE\nQKfoIJVdRdn8y7FAY0ysO0qGTLjMhg6NtlhWpofXAslODDVjh4qpMm/+Quyb\nRRY/5VL57V3O3QR0jlEppCPkWMQs10fiLE6/uFNWXyG0SwzLHjJpQuc76GNA\nOTb7+hyhtGmAVTRehrls0SwFhF8/IciSgTP+LGwvynLyioOc0AAVuBcVglB4\neEfWKs1BpGsTzSbvPhpBHiq23GN/ECPzh1uNavSmwwkq/XaUqfgIJoeTJqTh\n5VtuB4verWlxW7/HuX/Do/MeuCjETZyxL0bzgJ42rLOzt0YmIe4ITMRuBVjz\ny1mCku7uF490GEj3xDrJ9rEpQ1/xCffMtq3SNwlSCOq0yy9CiJ9d5cLlPudi\nmQ8h\r\n=WoK5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFVgAEXr/jTJFilS0fngsq8vgnVa2gfUTrSllmMPnOJnAiEAqXQg2Zkd5XoQUdKmvbbHll5KjKmHiP+6gAB5BVM/EW8="}]},"maintainers":[{"name":"mafintosh","email":"mathiasbuus@gmail.com"}],"_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mutexify_1.3.0_1588177005553_0.6778894536499365"},"_hasShrinkwrap":false},"1.3.1":{"name":"mutexify","version":"1.3.1","description":"mutex lock for javascript","main":"index.js","dependencies":{},"devDependencies":{"standard":"^14.3.3","tape":"^3.0.2"},"scripts":{"test":"tape test.js","posttest":"npm run lint","lint":"standard"},"repository":{"type":"git","url":"git+https://github.com/mafintosh/mutexify.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/mutexify/issues"},"keywords":["mutex","lock"],"homepage":"https://github.com/mafintosh/mutexify","gitHead":"15fbcd35d375b33741deee2ef7ed68fcdae75079","_id":"mutexify@1.3.1","_nodeVersion":"12.17.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-nU7mOEuaXiQIB/EgTIjYZJ7g8KqMm2D8l4qp+DqA4jxWOb/tnb1KEoqp+tlbdQIDIAiC1i7j7X/3yHDFXLxr9g==","shasum":"634fa5092d8c72639fffa0f663f2716fcba7061b","tarball":"https://registry.npmjs.org/mutexify/-/mutexify-1.3.1.tgz","fileCount":7,"unpackedSize":5611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTka5CRA9TVsSAnZWagAASdIP/25OyzC1pkYoiHtJu2mQ\nTt74XOqrigGDJ7rUVUMcAYS9FkZLCXgcTZNrtUnI/lG/cvxvCbX7SxzjNjb9\n+ck/PGrD1VG5pJIK/fOXXuZBz3iRjHl6tGi2z9f6xv4rukSW4ThYSpTRIDgP\n/aIYM44uFKBLgi1h+QAXQggNaLj+MTmB5pbrFXmuBfVLRTq44bz9uZJ7q4i5\n406EbwJKHyo4kPFFDJ/0PMwH+q9shopoUlbftCEyIQdWiibrLOaFqZVZnL4P\nFb/ZctEA/4yZZtNCDzZp2tIcTdZ6sFATSve4LuEcBbtuvC6z67zZ9cB7riTc\npk+QCf3h/bw0LMo91bGQOPOyON1i/kJHTuriB1CGuaPY0NFlTVlHkq9D3tpG\nx7gL791hL/5GmlBYdBgl0Lk/gv2IGsNyZZB0m0AGLTqrPg8Yqh7CY0JmIiLT\n4lebU5zmIjeZfraWmUqWJqG03M06OBCwABAW5YBs3aRzH0AJHZSf6cQuDtZY\nhAPiPWXz6U2c6ffdDn2unnQ0mMEuF9t64cr1pa2gYG6waJOZXz3whRqzIoQy\ndZPlfq5YYXWwCrQS1xBjfvV7pEwK+43Zr1RE6uguJa4Ay4a7DXgPAdhqgwAn\n0bXx34ti5J4ZxYq0nGepfRZ09ThIvY1opNSRZsf39p5P2s7TXHXCY67SBz79\npXiL\r\n=IrH9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAkEYYdllH3Z7eZ7WoAKHnE40dQ1PFyf27FnQx1KI8zWAiEA7B0qFEg/34zTTGeo7JetHDQReOcilBDewND6rhxPT4E="}]},"maintainers":[{"name":"mafintosh","email":"mathiasbuus@gmail.com"}],"_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mutexify_1.3.1_1598965433360_0.7643261549903058"},"_hasShrinkwrap":false},"1.4.0":{"name":"mutexify","version":"1.4.0","description":"mutex lock for javascript","main":"index.js","dependencies":{"queue-tick":"^1.0.0"},"devDependencies":{"standard":"^14.3.3","tape":"^3.0.2"},"scripts":{"test":"tape test.js","posttest":"npm run lint","lint":"standard"},"repository":{"type":"git","url":"git+https://github.com/mafintosh/mutexify.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/mutexify/issues"},"keywords":["mutex","lock"],"homepage":"https://github.com/mafintosh/mutexify","gitHead":"2d3dff5380ac9fa2efd6e61767ba3e228586a23c","_id":"mutexify@1.4.0","_nodeVersion":"16.8.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==","shasum":"b7f4ac0273c81824b840887c6a6e0bfab14bbe94","tarball":"https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz","fileCount":7,"unpackedSize":5709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpL6cCRA9TVsSAnZWagAAgO0QAJrzuAQgLVa7DLfoWVYs\nNui3cOsaqnUEBtZpZBkEZi0pGqPc9tLw8HGX5ntnaxKA/n570JBUpI4JIsjP\nr4/wu2KPZksTpdgZ3JUQeYH34DR2zIKAaKvQ0VXE3D8CiUKNvgLczt+vpNK3\n9cbwxCRcfkWfN6VmqeqJ+K47rJ1Gnyrm+RrKkeUUQylvTswPWiBH3WQV8a6c\n0ICLH4ba6E5TVNiTyLisAV43ZXJyVTOb7rVxnWHQpU5Qe9X3Slo2rPZ/tAuS\n1OwB5kWfqfqcN1BlZFY0MfqVJwyJRTlrsaX5rA6o+GtgDMQkwz+ODjlJ4dJK\nfdGaH/RpB/cff82c4j4hxG74kYVq7NvtRsq1aLNcBYl7WAm0eD01K+m5CXK5\nP4JtSVx92iQAtm+n+6cZEP21L3a0HFnVG936aHL0+xX4URhOJKhgQ+WXeOm7\nIo6HVkFybbU3zOfjEyLUyi8Vo+AMuyW1MsvgktD6+2IdulY6nY9EFTp2B2fA\nO5ZBFJMFFMIE0UQV7G4avcssUMaCHj185o+nljeJ6PNavH7ECflJKuv1qisV\nqcJVEUaT4+DQyfojTZ+VlwR3TTZuOhDDgfETa8l90GvTKFjOvmPZt6R6lp/0\nU0HLwMfaEqR3ZAQPWhnSGj8lAfZ76l82zfy0lgTaTWc7G8y3IAx0OR1EOwVD\nrA3/\r\n=xu2Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD25Pj3TDhSBvsdqUxxYFPE4/eD5VlAItik44b5qOZLmQIgOoFZxjXK7H5FlVvSFy3SEim8S1eVPsm3cy7QffVx018="}]},"_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"directories":{},"maintainers":[{"name":"mafintosh","email":"mathiasbuus@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mutexify_1.4.0_1638186652244_0.3511008575609731"},"_hasShrinkwrap":false}},"readme":"# mutexify\n\nBike shed mutex lock implementation in node.js\n\n```\nnpm install mutexify\n```\n\n[![build status](http://img.shields.io/travis/mafintosh/mutexify.svg?style=flat)](http://travis-ci.org/mafintosh/mutexify)\n\nHasn't this been done before? Yes, but the specific semantics of this made some of my code simpler.\n\n## Usage\n\n\n``` js\nvar mutexify = require('mutexify')\nvar lock = mutexify()\n\nlock(function(release) {\n  console.log('i am now locked')\n  setTimeout(function() {\n    release()\n  }, 1000)\n})\n\nlock(function(release) {\n  console.log('1 second later')\n  release()\n})\n```\n\nA common pattern is to call a callback after you release the lock.\nTo do this in a one-liner pass the callback and the value to `release(cb, err, value)`\n\n``` js\nvar write = function(data, cb) {\n  lock(function(release) {\n    fs.writeFile('locked-file.txt', data, release.bind(null, cb))\n  })\n}\n```\n\n`mutexify` guarantees that the order that a mutex was requested in is the order that access will be given.\n\nYou can read the lock's current state on the `lock.locked` property.\n\n### Usage with promises\n\n`mutexify` provides a Promise-based alternative.\n\n```js\nconst mutexify = require('mutexify/promise')\n\n;(async () => {\n  var lock = mutexify()\n\n  var release = await lock()\n  console.log('i am now locked')\n  setTimeout(function () {\n    release()\n  }, 1000)\n\n  release = await lock()\n  console.log('1 second later')\n  release()\n})()\n```\n\n## License\n\nMIT\n","maintainers":[{"name":"mafintosh","email":"mathiasbuus@gmail.com"}],"time":{"modified":"2022-06-20T14:52:59.445Z","created":"2014-11-10T18:57:38.639Z","1.0.0":"2014-11-10T18:57:38.639Z","1.0.1":"2014-11-10T19:05:10.087Z","1.1.0":"2015-05-14T20:29:37.134Z","1.2.0":"2017-08-10T06:41:41.749Z","1.3.0":"2020-04-29T16:16:45.702Z","1.3.1":"2020-09-01T13:03:53.449Z","1.4.0":"2021-11-29T11:50:52.367Z"},"homepage":"https://github.com/mafintosh/mutexify","keywords":["mutex","lock"],"repository":{"type":"git","url":"git+https://github.com/mafintosh/mutexify.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"bugs":{"url":"https://github.com/mafintosh/mutexify/issues"},"license":"MIT","readmeFilename":"README.md","users":{"matteo.collina":true,"timothy_vann":true,"djblue":true}}