summaryrefslogtreecommitdiff
path: root/test/parallel/test-cluster-child-index-net.js
blob: d8c3166d1bae3cbc7f01e4100ed7d11505855a0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'use strict';
const common = require('../common');
const Countdown = require('../common/countdown');
const cluster = require('cluster');
const net = require('net');

// Test an edge case when using `cluster` and `net.Server.listen()` to
// the port of `0`.
const kPort = 0;

function child() {
  const kTime = 2;
  const countdown = new Countdown(kTime * 2, () => {
    process.exit(0);
  });
  for (let i = 0; i < kTime; i += 1) {
    const server = net.createServer();
    server.listen(kPort, common.mustCall(() => {
      server.close(countdown.dec());
      const server2 = net.createServer();
      server2.listen(kPort, common.mustCall(() => {
        server2.close(countdown.dec());
      }));
    }));
  }
}

if (cluster.isMaster)
  cluster.fork(__filename);
else
  child();