// Flags: --expose-internals 'use strict'; const common = require('../common'); const assert = require('assert'); const net = require('net'); const cluster = require('cluster'); const rr = require('internal/cluster/round_robin_handle'); if (cluster.isPrimary) { const distribute = rr.prototype.distribute; rr.prototype.distribute = function(err, handle) { assert.strictEqual(err, 0); handle.close(); distribute.call(this, -1, undefined); }; cluster.schedulingPolicy = cluster.SCHED_RR; cluster.fork(); } else { const server = net.createServer(common.mustNotCall()); server.listen(0, common.mustCall(() => { const socket = net.connect(server.address().port); socket.on('close', common.mustCall(() => { server.close(common.mustCall(() => { process.disconnect(); })); })); })); }