| 123456789101112131415161718192021222324252627282930313233 | 'use strict'const childProcess = require('child_process')    , childModule  = require.resolve('./child/index')function fork (forkModule, workerOptions) {  // suppress --debug / --inspect flags while preserving others (like --harmony)  let filteredArgs = process.execArgv.filter(function (v) {        return !(/^--(debug|inspect)/).test(v)      })    , options       = Object.assign({          execArgv : filteredArgs        , env      : process.env        , cwd      : process.cwd()      }, workerOptions)    , child         = childProcess.fork(childModule, process.argv, options)  child.on('error', function() {    // this *should* be picked up by onExit and the operation requeued  })  child.send({ owner: 'farm', module: forkModule })  // return a send() function for this child  return {      send  : child.send.bind(child)    , child : child  }}module.exports = fork
 |