diff --git a/lib/internal/cluster/child.js b/lib/internal/cluster/child.js index 39e891214ff787..05cb6d25e81a9d 100644 --- a/lib/internal/cluster/child.js +++ b/lib/internal/cluster/child.js @@ -8,7 +8,7 @@ const Worker = require('internal/cluster/worker'); const { internal, sendHelper } = require('internal/cluster/utils'); const cluster = new EventEmitter(); const handles = {}; -const indexes = {}; +const indexes = new Map(); const noop = () => {}; module.exports = cluster; @@ -62,14 +62,18 @@ cluster._getServer = function(obj, options, cb) { options.addressType, options.fd ].join(':'); - if (indexes[indexesKey] === undefined) - indexes[indexesKey] = 0; + let index = indexes.get(indexesKey); + + if (index === undefined) + index = 0; else - indexes[indexesKey]++; + index++; + + indexes.set(indexesKey, index); const message = util._extend({ act: 'queryServer', - index: indexes[indexesKey], + index, data: null }, options); @@ -108,7 +112,7 @@ function shared(message, handle, indexesKey, cb) { handle.close = function() { send({ act: 'close', key }); delete handles[key]; - delete indexes[indexesKey]; + indexes.delete(indexesKey); return close.apply(this, arguments); }.bind(handle); assert(handles[key] === undefined); @@ -141,7 +145,7 @@ function rr(message, indexesKey, cb) { send({ act: 'close', key }); delete handles[key]; - delete indexes[indexesKey]; + indexes.delete(indexesKey); key = undefined; }