| '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--; | |
| }; | |