X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=inline;f=src%2Futility-types.ts;h=9cdf6b0a7e82f9d1e3da5fb434537ca8e2d943f9;hb=a788de39a01b042deb0707c2e92af99181b933d2;hp=cc29801f9afc81e23d25ce6f9e91e49ed60ae831;hpb=a3ae469eebfcc990a251133beb01378599313233;p=poolifier.git diff --git a/src/utility-types.ts b/src/utility-types.ts index cc29801f..9cdf6b0a 100644 --- a/src/utility-types.ts +++ b/src/utility-types.ts @@ -11,6 +11,15 @@ import type { IWorker, Task } from './pools/worker' */ export type Draft = { -readonly [P in keyof T]?: T[P] } +/** + * Performance statistics computation. + */ +export interface WorkerStatistics { + runTime: boolean + waitTime: boolean + elu: boolean +} + /** * Message object that is passed between main worker and worker. * @@ -50,54 +59,12 @@ export interface MessageValue< * Reference to main worker. */ readonly parent?: MainWorker + /** + * Whether to compute the given statistics or not. + */ + readonly statistics?: WorkerStatistics } -/** - * Worker synchronous function that can be executed. - * - * @typeParam Data - Type of data sent to the worker. This can only be serializable data. - * @typeParam Response - Type of execution response. This can only be serializable data. - */ -export type WorkerSyncFunction = ( - data?: Data -) => Response - -/** - * Worker asynchronous function that can be executed. - * This function must return a promise. - * - * @typeParam Data - Type of data sent to the worker. This can only be serializable data. - * @typeParam Response - Type of execution response. This can only be serializable data. - */ -export type WorkerAsyncFunction = ( - data?: Data -) => Promise - -/** - * Worker function that can be executed. - * This function can be synchronous or asynchronous. - * - * @typeParam Data - Type of data sent to the worker. This can only be serializable data. - * @typeParam Response - Type of execution response. This can only be serializable data. - */ -export type WorkerFunction = - | WorkerSyncFunction - | WorkerAsyncFunction - -/** - * Worker functions that can be executed. - * This object can contain synchronous or asynchronous functions. - * The key is the name of the function. - * The value is the function itself. - * - * @typeParam Data - Type of data sent to the worker. This can only be serializable data. - * @typeParam Response - Type of execution response. This can only be serializable data. - */ -export type TaskFunctions = Record< -string, -WorkerFunction -> - /** * An object holding the execution response promise resolve/reject callbacks. *