1// Flags: --expose-internals 2'use strict'; 3const common = require('../common'); 4const assert = require('assert'); 5const net = require('net'); 6const cluster = require('cluster'); 7const rr = require('internal/cluster/round_robin_handle'); 8 9if (cluster.isPrimary) { 10 const distribute = rr.prototype.distribute; 11 rr.prototype.distribute = function(err, handle) { 12 assert.strictEqual(err, 0); 13 handle.close(); 14 distribute.call(this, -1, undefined); 15 }; 16 cluster.schedulingPolicy = cluster.SCHED_RR; 17 cluster.fork(); 18} else { 19 const server = net.createServer(common.mustNotCall()); 20 server.listen(0, common.mustCall(() => { 21 22 const socket = net.connect(server.address().port); 23 24 socket.on('close', common.mustCall(() => { 25 server.close(common.mustCall(() => { 26 process.disconnect(); 27 })); 28 })); 29 })); 30} 31