Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 83x 83x 83x 83x 83x 83x 83x 83x 27x 27x 27x 27x 27x 27x 27x 27x 27x 7x 7x 27x 27x 27x 25x 25x 27x 83x 83x 44x 44x 44x 83x 83x 83x 64x 64x 41x 41x 41x 41x 64x 24x 24x 24x 24x 83x | 'use strict'; const { SafeMap } = primordials; const assert = require('internal/assert'); const dgram = require('internal/dgram'); const net = require('net'); module.exports = SharedHandle; function SharedHandle(key, address, { port, addressType, fd, flags }) { this.key = key; this.workers = new SafeMap(); this.handle = null; this.errno = 0; let rval; if (addressType === 'udp4' || addressType === 'udp6') rval = dgram._createSocketHandle(address, port, addressType, fd, flags); else rval = net._createServerHandle(address, port, addressType, fd, flags); if (typeof rval === 'number') this.errno = rval; else this.handle = rval; } SharedHandle.prototype.add = function(worker, send) { assert(!this.workers.has(worker.id)); this.workers.set(worker.id, worker); send(this.errno, null, this.handle); }; SharedHandle.prototype.remove = function(worker) { if (!this.workers.has(worker.id)) return false; this.workers.delete(worker.id); if (this.workers.size !== 0) return false; this.handle.close(); this.handle = null; return true; }; |