mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
Latest Code
This commit is contained in:
51
node_modules/strong-store-cluster/test/helper/do-concurrent-inc.js
generated
vendored
Normal file
51
node_modules/strong-store-cluster/test/helper/do-concurrent-inc.js
generated
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
exports.run = run;
|
||||
exports.teardown = teardown;
|
||||
|
||||
|
||||
var ROUNDS = 100;
|
||||
assert = require('assert'),
|
||||
cluster = require('cluster'),
|
||||
store = require('../..');
|
||||
|
||||
|
||||
function run(cb) {
|
||||
var left = ROUNDS,
|
||||
coll = store.collection('counter');
|
||||
|
||||
increment();
|
||||
|
||||
function increment() {
|
||||
coll.acquire('counter', function(err, lock, val) {
|
||||
assert(!err);
|
||||
|
||||
if (!val)
|
||||
val = 1;
|
||||
else
|
||||
val++;
|
||||
|
||||
lock.set(val);
|
||||
lock.release();
|
||||
|
||||
if (--left > 0)
|
||||
increment();
|
||||
else
|
||||
cb();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function teardown() {
|
||||
if (cluster.isWorker)
|
||||
process._channel.unref();
|
||||
|
||||
if (cluster.isMaster) {
|
||||
store.collection('counter').get('counter', function(err, value) {
|
||||
assert(value % ROUNDS === 0);
|
||||
assert(value >= ROUNDS);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user