X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fpools%2Fworker-node.ts;h=82e276886c08f56bc4051bc537df88b222600af0;hb=e560a9f2e03d63760bb42ac7d8d8bd9b23c9b1a5;hp=09e4a7b5cd8831360365a7a88e338e3b921eaf91;hpb=c90257c0b2d2c8ebdc6abbee02361cc2ddae36b9;p=poolifier.git diff --git a/src/pools/worker-node.ts b/src/pools/worker-node.ts index 09e4a7b5..82e27688 100644 --- a/src/pools/worker-node.ts +++ b/src/pools/worker-node.ts @@ -41,19 +41,21 @@ implements IWorkerNode { */ constructor (worker: Worker, workerType: WorkerType, poolMaxSize: number) { if (worker == null) { - throw new Error('Cannot construct a worker node without a worker') + throw new TypeError('Cannot construct a worker node without a worker') } if (workerType == null) { - throw new Error('Cannot construct a worker node without a worker type') + throw new TypeError( + 'Cannot construct a worker node without a worker type' + ) } if (poolMaxSize == null) { - throw new Error( + throw new TypeError( 'Cannot construct a worker node without a pool maximum size' ) } - if (isNaN(poolMaxSize)) { - throw new Error( - 'Cannot construct a worker node with a NaN pool maximum size' + if (!Number.isSafeInteger(poolMaxSize)) { + throw new TypeError( + 'Cannot construct a worker node with a pool maximum size that is not an integer' ) } this.worker = worker @@ -188,21 +190,25 @@ implements IWorkerNode { } private initTaskFunctionWorkerUsage (name: string): WorkerUsage { - const getTaskQueueSize = (): number => { - let taskQueueSize = 0 + const getTaskFunctionQueueSize = (): number => { + let taskFunctionQueueSize = 0 for (const task of this.tasksQueue) { - if (task.name === name) { - ++taskQueueSize + if ( + (task.name === DEFAULT_TASK_NAME && + name === (this.info.taskFunctions as string[])[1]) || + (task.name !== DEFAULT_TASK_NAME && name === task.name) + ) { + ++taskFunctionQueueSize } } - return taskQueueSize + return taskFunctionQueueSize } return { tasks: { executed: 0, executing: 0, get queued (): number { - return getTaskQueueSize() + return getTaskFunctionQueueSize() }, failed: 0 },