Caleb James DeLisle 6a29c552ab Separation of concerns between builder and cjdns-specific build stuff | 4 years ago | |
---|---|---|
.. | ||
.flowconfig | 4 years ago | |
.jshintignore | 4 years ago | |
.jshintrc | 4 years ago | |
.travis.yml | 4 years ago | |
index.js | 4 years ago | |
package.json | 4 years ago | |
readme.md | 4 years ago | |
test.js | 4 years ago |
# node
npm install --save saferphore
# Browser
bower install --save saferphore
const Saferphore = require('saferphore');
var sem = Saferphore.create(4);
for (var i = 0; i < 10000; i++) {
sem.take(function (returnAfter) {
Fs.writeFile('file_' + i, 'hi', returnAfter(function (err) {
if (err) { throw err; }
});
});
}
You can only return what you take, if you try to call returnAfter() twice then it will throw a clear error instead of creating a leaky semaphore.
sem.take(function (returnAfter) {
stream.on('data', returnAfter(processData)); // BZZZZZZZT error when it's called more than once
});