35 lines
742 B
JavaScript
35 lines
742 B
JavaScript
'use strict';
|
|
|
|
var cluster = require('cluster');
|
|
|
|
var crypto;
|
|
var stacks = {};
|
|
function realRandom() {
|
|
return parseFloat(('0.' + (parseInt(crypto.randomBytes(8).toString('hex'), 16))).replace(/(^0)|(0$)/g, ''));
|
|
}
|
|
Math.random = function () {
|
|
var err = new Error("Math.random() was used");
|
|
|
|
if (!stacks[err.stack.toString()]) {
|
|
stacks[err.stack.toString()] = true;
|
|
console.warn(err.stack);
|
|
}
|
|
|
|
if (!crypto) {
|
|
crypto = require('crypto');
|
|
}
|
|
|
|
Math.random = realRandom;
|
|
return realRandom();
|
|
};
|
|
|
|
if (cluster.isMaster) {
|
|
require('./boot/master');
|
|
} else {
|
|
/*
|
|
alternately we could use this and then check require.main
|
|
cluster.setupMaster({ exec : "app.js", });
|
|
*/
|
|
require('./boot/worker').create(null, null);
|
|
}
|