X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fworker.ts;h=5ac90fbf1783e9e04a7e820e37c961e8527385ff;hb=b558f6b5a5625753de41024325e40e1cbd03eda1;hp=58610eaaddacc2beea93809f80675bb8530010c0;hpb=5c4d16da7677746e563fdcfe7f82cbb842d1c9e6;p=poolifier.git diff --git a/src/pools/worker.ts b/src/pools/worker.ts index 58610eaa..5ac90fbf 100644 --- a/src/pools/worker.ts +++ b/src/pools/worker.ts @@ -1,3 +1,4 @@ +import type { MessageChannel } from 'node:worker_threads' import type { CircularArray } from '../circular-array' import type { Task } from '../utility-types' @@ -105,8 +106,8 @@ export interface TaskStatistics { * Enumeration of worker types. */ export const WorkerTypes = Object.freeze({ - cluster: 'cluster', - thread: 'thread' + thread: 'thread', + cluster: 'cluster' } as const) /** @@ -136,6 +137,14 @@ export interface WorkerInfo { * Ready flag. */ ready: boolean + /** + * Task function names. + */ + taskFunctions?: string[] + /** + * Message channel. + */ + messageChannel?: MessageChannel } /** @@ -177,9 +186,9 @@ export interface IWorker { * @param event - The event. * @param handler - The event handler. */ - readonly on: ((event: 'message', handler: MessageHandler) => void) & + readonly on: ((event: 'online', handler: OnlineHandler) => void) & + ((event: 'message', handler: MessageHandler) => void) & ((event: 'error', handler: ErrorHandler) => void) & - ((event: 'online', handler: OnlineHandler) => void) & ((event: 'exit', handler: ExitHandler) => void) /** * Registers a listener to the exit event that will only be performed once. @@ -238,7 +247,11 @@ export interface IWorkerNode { */ readonly resetUsage: () => void /** - * Gets task usage statistics. + * Close communication channel. + */ + readonly closeChannel: () => void + /** + * Gets task worker usage statistics. */ readonly getTaskWorkerUsage: (name: string) => WorkerUsage | undefined }