parallel-es
Version:
Simple parallelization for EcmaScript
23 lines (19 loc) • 922 B
text/typescript
import {IWorkerThreadSlaveCommunicationChannel} from "../../common/worker/worker-thread-slave-communication-channel";
import {ChildProcess} from "child_process";
import {IWorkerMessage, isStopMesssage} from "../../common/worker/worker-messages";
export class ChildProcessWorkerThreadSlaveCommunicationChannel implements IWorkerThreadSlaveCommunicationChannel {
constructor(private child: ChildProcess) {
}
public sendMessage(message: IWorkerMessage): void {
if (isStopMesssage(message)) {
this.child.kill();
} else {
this.child.send(message);
}
}
public addEventListener(type: "error", listener: (ev: any) => any): void;
public addEventListener(type: "message", listener: (ev: IWorkerMessage) => any): void;
public addEventListener(type: "error" | "message", listener: Function): void {
this.child.addListener(type, listener);
}
}