Revert "net: remove unnecessary process.nextTick()"

This reverts commit 571882c5a45872ac67e4e29513c4c8f23af9f781.

Removing the process.nextTick() call can prevent the consumer
from being able to catch error events.

PR-URL: https://github.com/nodejs/node/pull/12854
Fixes: https://github.com/nodejs/node/issues/12841
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
Evan Lucas 2017-05-05 06:10:43 -05:00
parent 60390cd7fb
commit ba0dbaa193
2 changed files with 11 additions and 5 deletions

View File

@ -1005,7 +1005,10 @@ function lookupAndConnect(self, options) {
// If host is an IP, skip performing a lookup
var addressType = cares.isIP(host);
if (addressType) {
internalConnect(self, host, port, addressType, localAddress, localPort);
nextTick(self[async_id_symbol], function() {
if (self.connecting)
internalConnect(self, host, port, addressType, localAddress, localPort);
});
return;
}

View File

@ -48,13 +48,16 @@ const server = net
{ port: server.address().port, host: server.address().address },
common.mustCall(onconnected));
const tcps = hooks.activitiesOfTypes('TCPWRAP');
const tcpconnects = hooks.activitiesOfTypes('TCPCONNECTWRAP');
assert.strictEqual(
tcps.length, 2,
'2 TCPWRAPs present when client is connecting');
assert.strictEqual(
tcpconnects.length, 1,
'1 TCPCONNECTWRAP present when client is connecting');
process.nextTick(() => {
const tcpconnects = hooks.activitiesOfTypes('TCPCONNECTWRAP');
assert.strictEqual(
tcpconnects.length, 1,
'1 TCPCONNECTWRAP present when client is connecting');
});
tcp2 = tcps[1];
assert.strictEqual(tcps.length, 2,
'2 TCPWRAP present when client is connecting');