@@ -7,7 +7,6 @@ if (!common.hasIPv6)
77const assert = require ( 'assert' ) ;
88const cluster = require ( 'cluster' ) ;
99const net = require ( 'net' ) ;
10- const Countdown = require ( '../common/countdown' ) ;
1110
1211// This test ensures that dual-stack support still works for cluster module
1312// when `ipv6Only` is not `true`.
@@ -18,35 +17,37 @@ if (cluster.isMaster) {
1817 const workers = [ ] ;
1918 let address ;
2019
21- const countdown = new Countdown ( WORKER_COUNT , ( ) => {
20+ for ( let i = 0 ; i < WORKER_COUNT ; i += 1 ) {
21+ const myWorker = new Promise ( ( resolve ) => {
22+ const worker = cluster . fork ( ) . on ( 'exit' , common . mustCall ( ( statusCode ) => {
23+ assert . strictEqual ( statusCode , 0 ) ;
24+ } ) ) . on ( 'listening' , common . mustCall ( ( workerAddress ) => {
25+ if ( ! address ) {
26+ address = workerAddress ;
27+ } else {
28+ assert . strictEqual ( address . addressType , workerAddress . addressType ) ;
29+ assert . strictEqual ( address . host , workerAddress . host ) ;
30+ assert . strictEqual ( address . port , workerAddress . port ) ;
31+ }
32+ resolve ( worker ) ;
33+ } ) ) ;
34+ } ) ;
35+
36+ workers . push ( myWorker ) ;
37+ }
38+
39+ Promise . all ( workers ) . then ( common . mustCall ( ( resolvedWorkers ) => {
2240 const socket = net . connect ( {
2341 port : address . port ,
2442 host : '0.0.0.0' ,
2543 } , common . mustCall ( ( ) => {
2644 socket . destroy ( ) ;
27- workers . forEach ( ( worker ) => {
28- worker . disconnect ( ) ;
45+ resolvedWorkers . forEach ( ( resolvedWorker ) => {
46+ resolvedWorker . disconnect ( ) ;
2947 } ) ;
3048 } ) ) ;
3149 socket . on ( 'error' , common . mustNotCall ( ) ) ;
32- } ) ;
33-
34- for ( let i = 0 ; i < WORKER_COUNT ; i += 1 ) {
35- const worker = cluster . fork ( ) . on ( 'exit' , common . mustCall ( ( statusCode ) => {
36- assert . strictEqual ( statusCode , 0 ) ;
37- } ) ) . on ( 'listening' , common . mustCall ( ( workerAddress ) => {
38- if ( ! address ) {
39- address = workerAddress ;
40- } else {
41- assert . strictEqual ( address . addressType , workerAddress . addressType ) ;
42- assert . strictEqual ( address . host , workerAddress . host ) ;
43- assert . strictEqual ( address . port , workerAddress . port ) ;
44- }
45- countdown . dec ( ) ;
46- } ) ) ;
47-
48- workers [ i ] = worker ;
49- }
50+ } ) ) ;
5051} else {
5152 net . createServer ( ) . listen ( {
5253 host,
0 commit comments