Offload functions to worker threads with shared memory primitives for Node.js.

feat: workers() defaults to number of available CPUs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+3 -2
+3 -2
src/worker-pool.ts
··· 1 1 import { Worker } from 'node:worker_threads'; 2 + import { availableParallelism } from 'node:os'; 2 3 import { setupWorker, execute } from './execute.ts'; 3 4 import type { Task } from './task.ts'; 4 5 import type { Runner } from './runner.ts'; ··· 7 8 8 9 /** 9 10 * Creates a pool of worker threads that dispatch tasks with round-robin scheduling. 10 - * @param size - Number of worker threads in the pool. 11 + * @param size - Number of worker threads in the pool. Defaults to the number of available CPUs. 11 12 * @returns A disposable {@link Runner} for dispatching tasks. 12 13 */ 13 - export function workers(size: number): Runner { 14 + export function workers(size: number = availableParallelism()): Runner { 14 15 const pool: Worker[] = []; 15 16 for (let i = 0; i < size; i++) { 16 17 const worker = new Worker(workerEntryUrl);