more refactoring.
This commit is contained in:
parent
9966718e9c
commit
e65da93ce1
@ -921,7 +921,7 @@ Pool.prototype._createPeer = function _createPeer(options) {
|
||||
: null;
|
||||
|
||||
bcoin.debug(
|
||||
'Reject (%s): msg=%s ccode=%s reason=%s data=%s',
|
||||
'Reject (%s): msg=%s ccode=%s reason=%s data=%s.',
|
||||
peer.hostname,
|
||||
payload.message,
|
||||
payload.ccode,
|
||||
@ -1007,8 +1007,12 @@ Pool.prototype._createPeer = function _createPeer(options) {
|
||||
self.block.versionHeight = version.height;
|
||||
|
||||
bcoin.debug(
|
||||
'Received version (%s): version=%d height=%d agent=%s',
|
||||
peer.hostname, version.version, version.height, version.agent);
|
||||
'Received version (%s): version=%d height=%d services=%s agent=%s',
|
||||
peer.hostname,
|
||||
version.version,
|
||||
version.height,
|
||||
version.services.toString(2),
|
||||
version.agent);
|
||||
|
||||
bcoin.time.add(peer.host, version.ts);
|
||||
|
||||
@ -1231,7 +1235,7 @@ Pool.prototype._removePeer = function _removePeer(peer) {
|
||||
Object.keys(this.request.map).forEach(function(hash) {
|
||||
var item = this.request.map[hash];
|
||||
if (item.peer === peer)
|
||||
item.finish();
|
||||
item.finish(new Error('Peer closed.'));
|
||||
}, this);
|
||||
bcoin.debug('Removed loader peer (%s).', peer.hostname);
|
||||
this.peers.load = null;
|
||||
@ -1695,7 +1699,7 @@ Pool.prototype.destroy = function destroy(callback) {
|
||||
});
|
||||
|
||||
Object.keys(this.request.map).forEach(function(hash) {
|
||||
this.request.map[hash].finish();
|
||||
this.request.map[hash].finish(new Error('Pool closed.'));
|
||||
}, this);
|
||||
|
||||
if (this.peers.load)
|
||||
@ -2014,16 +2018,30 @@ function LoadRequest(pool, peer, type, hash, callback) {
|
||||
this.callback = [];
|
||||
this.active = false;
|
||||
this.id = this.pool.uid++;
|
||||
this.timeout = null;
|
||||
|
||||
if (callback)
|
||||
this.callback.push(callback);
|
||||
this.addCallback(callback);
|
||||
|
||||
assert(!this.pool.request.map[this.hash]);
|
||||
this.pool.request.map[this.hash] = this;
|
||||
|
||||
this._finish = this.finish.bind(this);
|
||||
this._finish = this._ontimeout.bind(this);
|
||||
}
|
||||
|
||||
LoadRequest.prototype._ontimeout = function _ontimeout() {
|
||||
this.finish(new Error('Timeout.'));
|
||||
};
|
||||
|
||||
/**
|
||||
* Add a callback to be executed when item is received.
|
||||
* @param {Function} callback
|
||||
*/
|
||||
|
||||
LoadRequest.prototype.addCallback = function addCallback(callback) {
|
||||
if (callback)
|
||||
this.callback.push(callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* Mark the request as in-flight. Start timeout timer.
|
||||
*/
|
||||
@ -2034,6 +2052,7 @@ LoadRequest.prototype.start = function start() {
|
||||
|
||||
this.active = true;
|
||||
this.pool.request.active++;
|
||||
|
||||
if (this.type === this.pool.tx.type)
|
||||
this.pool.request.activeTX++;
|
||||
else
|
||||
@ -2045,6 +2064,7 @@ LoadRequest.prototype.start = function start() {
|
||||
/**
|
||||
* Mark the request as completed.
|
||||
* Remove from queue and map. Clear timeout.
|
||||
* @param {Error?} err
|
||||
*/
|
||||
|
||||
LoadRequest.prototype.finish = function finish(err) {
|
||||
@ -2053,12 +2073,12 @@ LoadRequest.prototype.finish = function finish(err) {
|
||||
if (this.pool.request.map[this.hash]) {
|
||||
delete this.pool.request.map[this.hash];
|
||||
if (this.active) {
|
||||
this.active = false;
|
||||
this.pool.request.active--;
|
||||
if (this.type === this.pool.tx.type)
|
||||
this.pool.request.activeTX--;
|
||||
else
|
||||
this.pool.request.activeBlocks--;
|
||||
this.active = false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2071,7 +2091,7 @@ LoadRequest.prototype.finish = function finish(err) {
|
||||
|
||||
if (this.timeout != null) {
|
||||
clearTimeout(this.timeout);
|
||||
delete this.timeout;
|
||||
this.timeout = null;
|
||||
}
|
||||
|
||||
for (i = 0; i < this.callback.length; i++)
|
||||
@ -2137,7 +2157,7 @@ utils.inherits(BroadcastItem, EventEmitter);
|
||||
|
||||
/**
|
||||
* Add a callback to be executed on ack, timeout, or reject.
|
||||
* @param {
|
||||
* @param {Function} callback
|
||||
*/
|
||||
|
||||
BroadcastItem.prototype.addCallback = function addCallback(callback) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user