From b12901403f2b1d7bfb0a64916282dd1fe0cc4e9d Mon Sep 17 00:00:00 2001 From: Devin Ivy Date: Thu, 9 Apr 2026 21:46:06 -0400 Subject: [PATCH] feat: workers() defaults to number of available CPUs Co-Authored-By: Claude Opus 4.6 (1M context) --- src/worker-pool.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/worker-pool.ts b/src/worker-pool.ts index 92a321b..d415962 100644 --- a/src/worker-pool.ts +++ b/src/worker-pool.ts @@ -1,4 +1,5 @@ import { Worker } from 'node:worker_threads'; +import { availableParallelism } from 'node:os'; import { setupWorker, execute } from './execute.ts'; import type { Task } from './task.ts'; import type { Runner } from './runner.ts'; @@ -7,10 +8,10 @@ const workerEntryUrl = new URL('./worker-entry.ts', import.meta.url); /** * Creates a pool of worker threads that dispatch tasks with round-robin scheduling. - * @param size - Number of worker threads in the pool. + * @param size - Number of worker threads in the pool. Defaults to the number of available CPUs. * @returns A disposable {@link Runner} for dispatching tasks. */ -export function workers(size: number): Runner { +export function workers(size: number = availableParallelism()): Runner { const pool: Worker[] = []; for (let i = 0; i < size; i++) { const worker = new Worker(workerEntryUrl); -- 2.51.2