@@ -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 the `ipv6Only` option in `net.Server.listen()`
1312// works as expected when we use cluster with `SCHED_NONE` schedulingPolicy.
@@ -18,7 +17,22 @@ const WORKER_ACCOUNT = 3;
1817if ( cluster . isMaster ) {
1918 const workers = [ ] ;
2019
21- const countdown = new Countdown ( WORKER_ACCOUNT , ( ) => {
20+ for ( let i = 0 ; i < WORKER_ACCOUNT ; 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+ assert . strictEqual ( workerAddress . addressType , 6 ) ;
26+ assert . strictEqual ( workerAddress . address , host ) ;
27+ assert . strictEqual ( workerAddress . port , common . PORT ) ;
28+ resolve ( worker ) ;
29+ } ) ) ;
30+ } ) ;
31+
32+ workers . push ( myWorker ) ;
33+ }
34+
35+ Promise . all ( workers ) . then ( common . mustCall ( ( resolvedWorkers ) => {
2236 // Make sure the `ipv6Only` option works. This is the part of the test that
2337 // requires the whole test to use `common.PORT` rather than port `0`. If it
2438 // used port `0` instead, then the operating system can supply a port that
@@ -30,24 +44,11 @@ if (cluster.isMaster) {
3044 } , common . mustCall ( ( ) => {
3145 // Exit.
3246 server . close ( ) ;
33- workers . forEach ( ( worker ) => {
34- worker . disconnect ( ) ;
47+ resolvedWorkers . forEach ( ( resolvedWorker ) => {
48+ resolvedWorker . disconnect ( ) ;
3549 } ) ;
3650 } ) ) ;
37- } ) ;
38-
39- for ( let i = 0 ; i < WORKER_ACCOUNT ; i += 1 ) {
40- const worker = cluster . fork ( ) . on ( 'exit' , common . mustCall ( ( statusCode ) => {
41- assert . strictEqual ( statusCode , 0 ) ;
42- } ) ) . on ( 'listening' , common . mustCall ( ( workerAddress ) => {
43- assert . strictEqual ( workerAddress . addressType , 6 ) ;
44- assert . strictEqual ( workerAddress . address , host ) ;
45- assert . strictEqual ( workerAddress . port , common . PORT ) ;
46- countdown . dec ( ) ;
47- } ) ) ;
48-
49- workers [ i ] = worker ;
50- }
51+ } ) ) ;
5152} else {
5253 net . createServer ( ) . listen ( {
5354 host,
0 commit comments