X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fpool.ts;h=a025f3ced9568eb872957b98d060ce66ef27ad10;hb=b3b1857ba11fd35d0f7118ef8046c38676473a15;hp=ccb4b5b94ef858ad00c0eb5a28c490651854489e;hpb=5d9133ae9ef83c5f69e26daf8dcfea584884d9c4;p=poolifier.git diff --git a/src/pools/pool.ts b/src/pools/pool.ts index ccb4b5b9..a025f3ce 100644 --- a/src/pools/pool.ts +++ b/src/pools/pool.ts @@ -3,7 +3,10 @@ import type { EventEmitterAsyncResource } from 'node:events' import type { TransferListItem, WorkerOptions } from 'node:worker_threads' import type { TaskFunctionProperties } from '../utility-types.js' -import type { TaskFunction } from '../worker/task-functions.js' +import type { + TaskFunction, + TaskFunctionObject +} from '../worker/task-functions.js' import type { WorkerChoiceStrategy, WorkerChoiceStrategyOptions @@ -110,6 +113,24 @@ export interface PoolInfo { readonly average?: number readonly median?: number } + readonly elu?: { + idle: { + readonly minimum: number + readonly maximum: number + readonly average?: number + readonly median?: number + } + active: { + readonly minimum: number + readonly maximum: number + readonly average?: number + readonly median?: number + } + utilization: { + readonly average?: number + readonly median?: number + } + } } /** @@ -137,7 +158,7 @@ export interface TasksQueueOptions { /** * Whether to enable tasks stealing under back pressure. * - * @defaultValue true + * @defaultValue false */ readonly tasksStealingOnBackPressure?: boolean /** @@ -308,11 +329,11 @@ export interface IPool< * @param fn - The task function. * @returns `true` if the task function was added, `false` otherwise. * @throws {@link https://nodejs.org/api/errors.html#class-typeerror} If the `name` parameter is not a string or an empty string. - * @throws {@link https://nodejs.org/api/errors.html#class-typeerror} If the `fn` parameter is not a function. + * @throws {@link https://nodejs.org/api/errors.html#class-typeerror} If the `fn` parameter is not a function or task function object. */ readonly addTaskFunction: ( name: string, - fn: TaskFunction + fn: TaskFunction | TaskFunctionObject ) => Promise /** * Removes a task function from this pool.