public constructor (
numberOfThreads: number,
filePath: string,
- protected readonly opts: PoolOptions<Worker> = {}
+ opts: PoolOptions<Worker> = {},
+ maximumNumberOfThreads?: number
) {
- super(numberOfThreads, filePath, opts)
+ super(numberOfThreads, filePath, opts, maximumNumberOfThreads)
}
/** @inheritDoc */
return isMainThread
}
- /** @inheritDoc */
- protected async destroyWorkerNode (workerNodeKey: number): Promise<void> {
- this.flagWorkerNodeAsNotReady(workerNodeKey)
- this.flushTasksQueue(workerNodeKey)
- // FIXME: wait for tasks to be finished
- const workerNode = this.workerNodes[workerNodeKey]
- const waitWorkerExit = new Promise<void>(resolve => {
- workerNode.registerOnceWorkerEventHandler('exit', () => {
- resolve()
- })
- })
- await this.sendKillMessageToWorker(workerNodeKey)
- workerNode.closeChannel()
- workerNode.removeAllListeners()
- await workerNode.worker.terminate()
- await waitWorkerExit
- }
-
/** @inheritDoc */
protected sendToWorker (
workerNodeKey: number,