mirror of https://github.com/nodejs/node.git
Don't error on ENOTCONN from shutdown()
parent
dcc2dd5e1f
commit
9ccf0e527f
|
@ -1185,7 +1185,7 @@ Agent.prototype._establishNewConnection = function() {
|
|||
parser.incoming = null;
|
||||
|
||||
socket.on('error', function(err) {
|
||||
debug('AGENT SOCKET ERROR: ' + err.message);
|
||||
debug('AGENT SOCKET ERROR: ' + err.message + '\n' + err.stack);
|
||||
var req;
|
||||
if (socket._httpMessage) {
|
||||
req = socket._httpMessage;
|
||||
|
|
|
@ -844,7 +844,12 @@ Socket.prototype._shutdown = function() {
|
|||
try {
|
||||
this._shutdownImpl();
|
||||
} catch (e) {
|
||||
this.destroy(e);
|
||||
if (e.code == 'ENOTCONN') {
|
||||
// Allowed.
|
||||
this.destroy();
|
||||
} else {
|
||||
this.destroy(e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// writable but not readable
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
var assert = require('assert');
|
||||
var https = require('https');
|
||||
var tls = require('tls');
|
||||
|
||||
var options = {
|
||||
host: 'github.com',
|
||||
path: '/kriskowal/tigerblood/',
|
||||
port: 443
|
||||
};
|
||||
|
||||
var req = https.get(options, function(response) {
|
||||
var recved = 0;
|
||||
|
||||
response.on('data', function(chunk) {
|
||||
recved += chunk.length;
|
||||
console.log('Response data.');
|
||||
});
|
||||
|
||||
response.on('end', function() {
|
||||
console.log('Response end.');
|
||||
// Does not work
|
||||
loadDom();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
req.on('error', function(e) {
|
||||
console.log('Error on get.');
|
||||
});
|
||||
|
||||
function loadDom() {
|
||||
// Do a lot of computation to stall the process.
|
||||
// In the meantime the socket will be disconnected.
|
||||
for (var i = 0; i < 1e8; i++) {
|
||||
;
|
||||
}
|
||||
|
||||
console.log('Dom loaded.');
|
||||
}
|
Loading…
Reference in New Issue