@@ -7,7 +7,6 @@ if (!common.hasIPv6)
7
7
const assert = require ( 'assert' ) ;
8
8
const cluster = require ( 'cluster' ) ;
9
9
const net = require ( 'net' ) ;
10
- const Countdown = require ( '../common/countdown' ) ;
11
10
12
11
// This test ensures that the `ipv6Only` option in `net.Server.listen()`
13
12
// works as expected when we use cluster with `SCHED_NONE` schedulingPolicy.
@@ -18,7 +17,22 @@ const WORKER_ACCOUNT = 3;
18
17
if ( cluster . isMaster ) {
19
18
const workers = [ ] ;
20
19
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 ) => {
22
36
// Make sure the `ipv6Only` option works. This is the part of the test that
23
37
// requires the whole test to use `common.PORT` rather than port `0`. If it
24
38
// used port `0` instead, then the operating system can supply a port that
@@ -30,24 +44,11 @@ if (cluster.isMaster) {
30
44
} , common . mustCall ( ( ) => {
31
45
// Exit.
32
46
server . close ( ) ;
33
- workers . forEach ( ( worker ) => {
34
- worker . disconnect ( ) ;
47
+ resolvedWorkers . forEach ( ( resolvedWorker ) => {
48
+ resolvedWorker . disconnect ( ) ;
35
49
} ) ;
36
50
} ) ) ;
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
+ } ) ) ;
51
52
} else {
52
53
net . createServer ( ) . listen ( {
53
54
host,
0 commit comments