@@ -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 dual-stack support still works for cluster module
13
12
// when `ipv6Only` is not `true`.
@@ -18,35 +17,37 @@ if (cluster.isMaster) {
18
17
const workers = [ ] ;
19
18
let address ;
20
19
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 ) => {
22
40
const socket = net . connect ( {
23
41
port : address . port ,
24
42
host : '0.0.0.0' ,
25
43
} , common . mustCall ( ( ) => {
26
44
socket . destroy ( ) ;
27
- workers . forEach ( ( worker ) => {
28
- worker . disconnect ( ) ;
45
+ resolvedWorkers . forEach ( ( resolvedWorker ) => {
46
+ resolvedWorker . disconnect ( ) ;
29
47
} ) ;
30
48
} ) ) ;
31
49
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
+ } ) ) ;
50
51
} else {
51
52
net . createServer ( ) . listen ( {
52
53
host,
0 commit comments