- [`pool.execute(data, name, transferList)`](#poolexecutedata-name-transferlist)
- [`pool.start()`](#poolstart)
- [`pool.destroy()`](#pooldestroy)
- - [`pool.listTaskFunctions()`](#poollisttaskfunctions)
+ - [`pool.hasTaskFunction(name)`](#poolhastaskfunctionname)
+ - [`pool.addTaskFunction(name, fn)`](#pooladdtaskfunctionname-fn)
+ - [`pool.removeTaskFunction(name)`](#poolremovetaskfunctionname)
+ - [`pool.listTaskFunctionNames()`](#poollisttaskfunctionnames)
+ - [`pool.setDefaultTaskFunction(name)`](#poolsetdefaulttaskfunctionname)
- [`PoolOptions`](#pooloptions)
- [`ThreadPoolOptions extends PoolOptions`](#threadpooloptions-extends-pooloptions)
- [`ClusterPoolOptions extends PoolOptions`](#clusterpooloptions-extends-pooloptions)
- [`YourWorker.hasTaskFunction(name)`](#yourworkerhastaskfunctionname)
- [`YourWorker.addTaskFunction(name, fn)`](#yourworkeraddtaskfunctionname-fn)
- [`YourWorker.removeTaskFunction(name)`](#yourworkerremovetaskfunctionname)
- - [`YourWorker.listTaskFunctions()`](#yourworkerlisttaskfunctions)
+ - [`YourWorker.listTaskFunctionNames()`](#yourworkerlisttaskfunctionnames)
- [`YourWorker.setDefaultTaskFunction(name)`](#yourworkersetdefaulttaskfunctionname)
## Pool
`data` (optional) An object that you want to pass to your worker implementation.
`name` (optional) A string with the task function name that you want to execute on the worker. Default: `'default'`
-`transferList` (optional) An array of transferable objects that you want to transfer to your [worker_threads](https://nodejs.org/api/worker_threads.html) worker implementation
+`transferList` (optional) An array of transferable objects that you want to transfer to your [worker_threads](https://nodejs.org/api/worker_threads.html) worker implementation.
This method is available on both pool implementations and returns a promise with the task function execution response.
This method is available on both pool implementations and will call the terminate method on each worker.
-### `pool.listTaskFunctions()`
+### `pool.hasTaskFunction(name)`
+
+`name` (mandatory) The task function name.
+
+This method is available on both pool implementations and returns a boolean.
+
+### `pool.addTaskFunction(name, fn)`
+
+`name` (mandatory) The task function name.
+`fn` (mandatory) The task function.
+
+This method is available on both pool implementations and returns a boolean promise.
+
+### `pool.removeTaskFunction(name)`
+
+`name` (mandatory) The task function name.
+
+This method is available on both pool implementations and returns a boolean promise.
+
+### `pool.listTaskFunctionNames()`
This method is available on both pool implementations and returns an array of the task function names.
+### `pool.setDefaultTaskFunction(name)`
+
+`name` (mandatory) The task function name.
+
+This method is available on both pool implementations and returns a boolean promise.
+
### `PoolOptions`
An object with these properties:
Default: `{ retries: 6, runTime: { median: false }, waitTime: { median: false }, elu: { median: false } }`
-- `startWorkers` (optional) - Start the minimum number of workers at pool creation.
+- `startWorkers` (optional) - Start the minimum number of workers at pool initialization.
Default: `true`
- `restartWorkerOnError` (optional) - Restart worker on uncaught error in this pool.
Default: `true`
-- `enableEvents` (optional) - Events emission enablement in this pool.
+- `enableEvents` (optional) - Events integrated with async resource emission enablement in this pool.
Default: `true`
- `enableTasksQueue` (optional) - Tasks queue per worker enablement in this pool.
Default: `false`
- `size` (optional) - The maximum number of tasks that can be queued on a worker before flagging it as back pressured. It must be a positive integer.
- `concurrency` (optional) - The maximum number of tasks that can be executed concurrently on a worker. It must be a positive integer.
- - `taskStealing` (optional) - Task stealing enablement.
- - `tasksStealingOnBackPressure` (optional) - Tasks stealing enablement on back pressure.
+ - `taskStealing` (optional) - Task stealing enablement on empty queue.
+ - `tasksStealingOnBackPressure` (optional) - Tasks stealing enablement under back pressure.
Default: `{ size: (pool maximum size)^2, concurrency: 1, taskStealing: true, tasksStealingOnBackPressure: true }`
`name` (mandatory) The task function name.
-This method is available on both worker implementations and returns a boolean.
+This method is available on both worker implementations and returns `{ status: boolean, error?: Error }`.
#### `YourWorker.addTaskFunction(name, fn)`
`name` (mandatory) The task function name.
`fn` (mandatory) The task function.
-This method is available on both worker implementations and returns a boolean.
+This method is available on both worker implementations and returns `{ status: boolean, error?: Error }`.
#### `YourWorker.removeTaskFunction(name)`
`name` (mandatory) The task function name.
-This method is available on both worker implementations and returns a boolean.
+This method is available on both worker implementations and returns `{ status: boolean, error?: Error }`.
-#### `YourWorker.listTaskFunctions()`
+#### `YourWorker.listTaskFunctionNames()`
This method is available on both worker implementations and returns an array of the task function names.
`name` (mandatory) The task function name.
-This method is available on both worker implementations and returns a boolean.
+This method is available on both worker implementations and returns `{ status: boolean, error?: Error }`.