X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fworker.ts;h=5dbb6ac5fc16cdb2afd48f968513b1292c257f66;hb=bb379737d9bdc595e5265c63c327260b9d15a201;hp=507396dea078ac806c5dda839336f6046df11d5c;hpb=20016c79549983d09d30b70852ec7fae515d4156;p=poolifier.git diff --git a/src/pools/worker.ts b/src/pools/worker.ts index 507396de..5dbb6ac5 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,10 @@ export interface WorkerInfo { * Ready flag. */ ready: boolean + /** + * Message channel. + */ + messageChannel?: MessageChannel } /** @@ -177,9 +182,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. @@ -237,6 +242,10 @@ export interface IWorkerNode { * Resets usage statistics . */ readonly resetUsage: () => void + /** + * Close communication channel. + */ + readonly closeChannel: () => void /** * Gets task worker usage statistics. */