X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fpool.ts;h=a3552e486ed348fe8c0a35041a9ede5e3b028e92;hb=533a8e2293c1e3d4da47ee556873274a534b08fd;hp=ccb4b5b94ef858ad00c0eb5a28c490651854489e;hpb=54aa8d5a576b22bfdbebea90021502035a5e1c8c;p=poolifier.git diff --git a/src/pools/pool.ts b/src/pools/pool.ts index ccb4b5b9..a3552e48 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,20 @@ 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 + } + } } /** @@ -137,7 +154,7 @@ export interface TasksQueueOptions { /** * Whether to enable tasks stealing under back pressure. * - * @defaultValue true + * @defaultValue false */ readonly tasksStealingOnBackPressure?: boolean /** @@ -308,11 +325,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.