28 lines
613 B
JavaScript
28 lines
613 B
JavaScript
'use strict';
|
|
|
|
var MAX_PORTS = 65535;
|
|
module.exports = DebugPortAllocator;
|
|
function DebugPortAllocator() {
|
|
this.ports = Object.create(null);
|
|
this.length = 0;
|
|
}
|
|
|
|
DebugPortAllocator.prototype.nextAvailableStartingAt = function(starting) {
|
|
while (this.ports[starting] === true) {
|
|
starting++;
|
|
}
|
|
|
|
if (starting >= MAX_PORTS) {
|
|
throw new Error('WorkerPool debug port limit reached: ' + starting + '>= ' + MAX_PORTS );
|
|
}
|
|
|
|
this.ports[starting] = true;
|
|
this.length++;
|
|
return starting;
|
|
};
|
|
|
|
DebugPortAllocator.prototype.releasePort = function(port) {
|
|
delete this.ports[port];
|
|
this.length--;
|
|
};
|
|
|