diff --git a/node/node-tests.ts b/node/node-tests.ts index 0cc0b5de6c..64f7a5bb29 100644 --- a/node/node-tests.ts +++ b/node/node-tests.ts @@ -15,6 +15,7 @@ import * as querystring from "querystring"; import * as path from "path"; import * as readline from "readline"; import * as childProcess from "child_process"; +import * as cluster from "cluster"; import * as os from "os"; import * as vm from "vm"; // Specifically test buffer module regression. @@ -643,6 +644,18 @@ namespace readline_tests { childProcess.exec("echo test"); childProcess.spawnSync("echo test"); +////////////////////////////////////////////////////////////////////// +/// cluster tests: https://nodejs.org/api/cluster.html /// +////////////////////////////////////////////////////////////////////// + +cluster.fork(); +Object.keys(cluster.workers).forEach(key => { + const worker = cluster.workers[key]; + if (worker.isDead()) { + console.log('worker %d is dead', worker.process.pid); + } +}); + //////////////////////////////////////////////////// /// os tests : https://nodejs.org/api/os.html //////////////////////////////////////////////////// diff --git a/node/node.d.ts b/node/node.d.ts index 1b2da31c94..6f115759ff 100644 --- a/node/node.d.ts +++ b/node/node.d.ts @@ -679,6 +679,8 @@ declare module "cluster" { kill(signal?: string): void; destroy(signal?: string): void; disconnect(): void; + isConnected(): boolean; + isDead(): boolean; } export var settings: ClusterSettings; @@ -688,7 +690,9 @@ declare module "cluster" { export function fork(env?: any): Worker; export function disconnect(callback?: Function): void; export var worker: Worker; - export var workers: Worker[]; + export var workers: { + [index: string]: Worker + }; // Event emitter export function addListener(event: string, listener: Function): void;