worker-farm/lib/fork.js: cleanup

Reviewed By: davidaurelio

Differential Revision: D5002190

fbshipit-source-id: 07230f3e4fb059430124f44a82a928921904ed7b
This commit is contained in:
Jean Lauliac 2017-05-04 10:19:32 -07:00 committed by Facebook Github Bot
parent 76d6f904b1
commit 2de6e546bd
4 changed files with 29 additions and 28 deletions

View File

@ -51,7 +51,7 @@ function makeFarm(worker, methods, timeout, maxConcurrentWorkers) {
class Transformer {
_workers: {[name: string]: mixed};
_workers: {[name: string]: Function};
_transformModulePath: string;
_transform: (
transform: string,

View File

@ -5,6 +5,8 @@
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @flow
*/
/* eslint-disable */
@ -25,7 +27,7 @@ const extend = require('xtend')
, ProcessTerminatedError = require('errno').create('ProcessTerminatedError')
, MaxConcurrentCallsError = require('errno').create('MaxConcurrentCallsError')
function Farm (options, path) {
function Farm (options: {}, path: string) {
this.options = extend(DEFAULT_OPTIONS, options)
this.path = path
this.activeCalls = 0

View File

@ -5,31 +5,34 @@
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @flow
*/
/* eslint-disable */
const childProcess = require('child_process')
, childModule = require.resolve('./child/index')
'use strict';
function fork (forkModule) {
var child = childProcess.fork(childModule, {
env: process.env
, cwd: process.cwd()
})
const childProcess = require('child_process');
const childModule = require.resolve('./child/index');
child.send({ module: forkModule })
function fork(forkModule: string) {
const child = childProcess.fork(childModule, {
env: process.env,
cwd: process.cwd(),
});
child.send({module: forkModule});
// return a send() function for this child
return {
send : function (data) {
send(data: {}) {
try {
child.send(data)
child.send(data);
} catch (e) {
// this *should* be picked up by onExit and the operation requeued
}
}
, child : child
}
},
child,
};
}
module.exports = fork
module.exports = fork;

View File

@ -5,6 +5,8 @@
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @flow
*/
/* eslint-disable */
@ -12,20 +14,14 @@ const Farm = require('./farm')
var farms = [] // keep record of farms so we can end() them if required
function farm (options, path, methods) {
if (typeof options == 'string') {
methods = path
path = options
options = {}
}
function farm(options: {}, path: string, methods: Array<string>): {[name: string]: Function} {
var f = new Farm(options, path)
, api = f.setup(methods)
farms.push({ farm: f, api: api })
// return the public API
return api
return (api: any)
}
function end (api, callback) {