From 65b89cafde63428c587e9bce119ad0b7a1c38583 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Mon, 8 Dec 2025 23:20:05 -0800 Subject: [PATCH] fix: use available_cpu_count fallback for jobs in hOCR Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) --- src/ocrmypdf/builtin_plugins/tesseract_ocr.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ocrmypdf/builtin_plugins/tesseract_ocr.py b/src/ocrmypdf/builtin_plugins/tesseract_ocr.py index 39f83b70..765647b5 100644 --- a/src/ocrmypdf/builtin_plugins/tesseract_ocr.py +++ b/src/ocrmypdf/builtin_plugins/tesseract_ocr.py @@ -15,7 +15,7 @@ from ocrmypdf._exec import tesseract from ocrmypdf._jobcontext import PageContext from ocrmypdf.cli import numeric, str_to_int from ocrmypdf.exceptions import BadArgsError, MissingDependencyError -from ocrmypdf.helpers import clamp +from ocrmypdf.helpers import available_cpu_count, clamp from ocrmypdf.imageops import calculate_downsample, downsample_image from ocrmypdf.pluginspec import OcrEngine from ocrmypdf.subprocess import check_external_program @@ -184,7 +184,8 @@ def validate(pdfinfo, options): # constraint: (ocrmypdf workers) * (tesseract threads) <= max_workers. # As of Tesseract 4.1, 3 threads is the most effective on a 4 core/8 thread system. if not os.environ.get('OMP_THREAD_LIMIT', '').isnumeric(): - tess_threads = clamp(options.jobs // len(pdfinfo), 1, 3) + jobs = options.jobs or available_cpu_count() + tess_threads = clamp(jobs // len(pdfinfo), 1, 3) os.environ['OMP_THREAD_LIMIT'] = str(tess_threads) else: tess_threads = int(os.environ['OMP_THREAD_LIMIT'])