worker debug.
This commit is contained in:
parent
9b2d80098a
commit
6fb0689ce4
@ -15,10 +15,14 @@ if (typeof importScripts !== 'undefined') {
|
|||||||
penv = JSON.parse(event.data);
|
penv = JSON.parse(event.data);
|
||||||
|
|
||||||
env = self.bcoin.env(penv.BCOIN_WORKER_NETWORK);
|
env = self.bcoin.env(penv.BCOIN_WORKER_NETWORK);
|
||||||
env.workers.listen(+penv.BCOIN_WORKER_ID);
|
env.workers.listen(+penv.BCOIN_WORKER_ID, {
|
||||||
|
debug: +penv.BCOIN_WORKER_DEBUG === 1
|
||||||
|
});
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
penv = process.env;
|
penv = process.env;
|
||||||
env = require('./env')(penv.BCOIN_WORKER_NETWORK);
|
env = require('./env')(penv.BCOIN_WORKER_NETWORK);
|
||||||
env.workers.listen(+penv.BCOIN_WORKER_ID);
|
env.workers.listen(+penv.BCOIN_WORKER_ID, {
|
||||||
|
debug: +penv.BCOIN_WORKER_DEBUG === 1
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -215,7 +215,7 @@ Workers.prototype.mine = function mine(attempt, callback) {
|
|||||||
|
|
||||||
function Worker(id) {
|
function Worker(id) {
|
||||||
var self = this;
|
var self = this;
|
||||||
var cp;
|
var penv, cp;
|
||||||
|
|
||||||
if (!(this instanceof Worker))
|
if (!(this instanceof Worker))
|
||||||
return new Worker(id);
|
return new Worker(id);
|
||||||
@ -227,6 +227,12 @@ function Worker(id) {
|
|||||||
this.parser = new Parser();
|
this.parser = new Parser();
|
||||||
this.setMaxListeners(utils.MAX_SAFE_INTEGER);
|
this.setMaxListeners(utils.MAX_SAFE_INTEGER);
|
||||||
|
|
||||||
|
penv = {
|
||||||
|
BCOIN_WORKER_ID: id + '',
|
||||||
|
BCOIN_WORKER_NETWORK: network.type,
|
||||||
|
BCOIN_WORKER_DEBUG: (bcoin.debugLogs || bcoin.debugFile) ? '1' : '0'
|
||||||
|
};
|
||||||
|
|
||||||
if (bcoin.isBrowser) {
|
if (bcoin.isBrowser) {
|
||||||
this.child = new global.Worker('/bcoin-worker.js');
|
this.child = new global.Worker('/bcoin-worker.js');
|
||||||
|
|
||||||
@ -246,19 +252,13 @@ function Worker(id) {
|
|||||||
self.emit('data', data);
|
self.emit('data', data);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.child.postMessage(JSON.stringify({
|
this.child.postMessage(JSON.stringify(penv));
|
||||||
BCOIN_WORKER_ID: id + '',
|
|
||||||
BCOIN_WORKER_NETWORK: network.type
|
|
||||||
}));
|
|
||||||
} else {
|
} else {
|
||||||
cp = require('child_' + 'process');
|
cp = require('child_' + 'process');
|
||||||
|
|
||||||
this.child = cp.spawn(process.argv[0], [__dirname + '/worker.js'], {
|
this.child = cp.spawn(process.argv[0], [__dirname + '/worker.js'], {
|
||||||
stdio: 'pipe',
|
stdio: 'pipe',
|
||||||
env: utils.merge({}, process.env, {
|
env: utils.merge({}, process.env, penv)
|
||||||
BCOIN_WORKER_ID: id + '',
|
|
||||||
BCOIN_WORKER_NETWORK: network.type
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.child.on('error', function(err) {
|
this.child.on('error', function(err) {
|
||||||
@ -279,7 +279,7 @@ function Worker(id) {
|
|||||||
|
|
||||||
this.child.stderr.setEncoding('utf8');
|
this.child.stderr.setEncoding('utf8');
|
||||||
this.child.stderr.on('data', function(data) {
|
this.child.stderr.on('data', function(data) {
|
||||||
bcoin.debug(data);
|
bcoin.debug(data.trim());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -403,10 +403,11 @@ utils.inherits(Worker, EventEmitter);
|
|||||||
* @exports Master
|
* @exports Master
|
||||||
* @constructor
|
* @constructor
|
||||||
* @param {Number} id - Worker ID.
|
* @param {Number} id - Worker ID.
|
||||||
|
* @param {Object?} options
|
||||||
* @property {Number} id
|
* @property {Number} id
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function Master(id) {
|
function Master(id, options) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
if (!(this instanceof Master))
|
if (!(this instanceof Master))
|
||||||
@ -417,6 +418,7 @@ function Master(id) {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
this.framer = new Framer();
|
this.framer = new Framer();
|
||||||
this.parser = new Parser();
|
this.parser = new Parser();
|
||||||
|
this.options = options || {};
|
||||||
|
|
||||||
if (bcoin.isBrowser) {
|
if (bcoin.isBrowser) {
|
||||||
global.onerror = function onerror(err) {
|
global.onerror = function onerror(err) {
|
||||||
@ -503,10 +505,25 @@ Master.prototype.sendEvent = function sendEvent() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Master.prototype.log = function log() {
|
Master.prototype.log = function log() {
|
||||||
if (bcoin.isBrowser)
|
var args, msg;
|
||||||
return console.error.apply(console.error, arguments);
|
|
||||||
process.stderr.write('Worker ' + this.id + ': ');
|
if (!this.options.debug)
|
||||||
return console.error.apply(console.error, arguments);
|
return;
|
||||||
|
|
||||||
|
args = Array.prototype.slice.call(arguments);
|
||||||
|
|
||||||
|
msg = typeof args[0] !== 'object'
|
||||||
|
? utils.format(args, false)
|
||||||
|
: args[0];
|
||||||
|
|
||||||
|
msg = utils.format(['Worker %d: %s', this.id, msg], false);
|
||||||
|
|
||||||
|
if (bcoin.isBrowser) {
|
||||||
|
console.error(msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
process.stderr.write(msg + '\n');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -522,11 +539,12 @@ Master.prototype.destroy = function destroy() {
|
|||||||
/**
|
/**
|
||||||
* Listen for messages from master process (only if worker).
|
* Listen for messages from master process (only if worker).
|
||||||
* @param {Number} id - Worker id.
|
* @param {Number} id - Worker id.
|
||||||
|
* @param {Object?} options
|
||||||
* @returns {Master}
|
* @returns {Master}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Master.listen = function listen(id) {
|
Master.listen = function listen(id, options) {
|
||||||
var master = new Master(id);
|
var master = new Master(id, options);
|
||||||
var log = master.log.bind(master);
|
var log = master.log.bind(master);
|
||||||
|
|
||||||
bcoin.debug = log;
|
bcoin.debug = log;
|
||||||
|
|||||||
@ -11,6 +11,8 @@ describe('Chain', function() {
|
|||||||
var chain, wallet, miner;
|
var chain, wallet, miner;
|
||||||
var competingTip, oldTip, ch1, ch2, cb1, cb2;
|
var competingTip, oldTip, ch1, ch2, cb1, cb2;
|
||||||
|
|
||||||
|
this.timeout(5000);
|
||||||
|
|
||||||
chain = new bcoin.chain({ name: 'chain-test', db: 'memory' });
|
chain = new bcoin.chain({ name: 'chain-test', db: 'memory' });
|
||||||
wallet = new bcoin.wallet();
|
wallet = new bcoin.wallet();
|
||||||
miner = new bcoin.miner({
|
miner = new bcoin.miner({
|
||||||
|
|||||||
@ -6,6 +6,8 @@ var assert = require('assert');
|
|||||||
var opcodes = constants.opcodes;
|
var opcodes = constants.opcodes;
|
||||||
|
|
||||||
describe('Mempool', function() {
|
describe('Mempool', function() {
|
||||||
|
this.timeout(5000);
|
||||||
|
|
||||||
var chain = new bcoin.chain({
|
var chain = new bcoin.chain({
|
||||||
name: 'mp-chain',
|
name: 'mp-chain',
|
||||||
db: 'memory'
|
db: 'memory'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user