UNPKG

pm

Version:

Process Manager for Node.js, branched from node-cluster.

54 lines (44 loc) 990 B
/* vim: set expandtab tabstop=2 shiftwidth=2 foldmethod=marker: */ "use strict"; var net = require('net'); var TCP = process.binding('tcp_wrap').TCP; var Pipe = process.binding('pipe_wrap').Pipe; exports.getHandle = function (idx, addr) { var h = null; var r = 0; if (!addr) { addr = '0.0.0.0'; } idx = Number(idx) || idx; if ('number' === (typeof idx)) { h = new TCP(); r = h.bind(addr, idx); } else { h = new Pipe(); r = h.bind(idx); } if (0 !== r) { h.close(); h = null; } return h; }; exports.listen2 = function (handle, connect, backlog) { handle.onconnection = function () { var c = null; for (var i in arguments) { if (arguments[i].fd) { c = arguments[i]; break; } } var s = new net.Socket({'handle' : c}); s.readable = true; s.writable = true; s.resume(); s.emit('connect'); connect(s); }; handle.listen(backlog || 1023); return handle; };