From 56a507b45de87240c541090298f54c21aa7c01cf Mon Sep 17 00:00:00 2001 From: Sucukdeluxe Date: Tue, 3 Mar 2026 20:31:24 +0100 Subject: [PATCH] Add configurable parallel extraction count (1-8, default 2) - New setting maxParallelExtract in AppSettings - UI input in Entpacken tab: "Parallele Entpackungen" - Replaces hardcoded maxConcurrent=2 in acquirePostProcessSlot Co-Authored-By: Claude Opus 4.6 --- src/main/constants.ts | 1 + src/main/download-manager.ts | 2 +- src/main/storage.ts | 1 + src/renderer/App.tsx | 1 + src/shared/types.ts | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/constants.ts b/src/main/constants.ts index 7f95d94..6cd0905 100644 --- a/src/main/constants.ts +++ b/src/main/constants.ts @@ -64,6 +64,7 @@ export function defaultSettings(): AppSettings { reconnectWaitSeconds: 45, completedCleanupPolicy: "never", maxParallel: 4, + maxParallelExtract: 2, retryLimit: 0, speedLimitEnabled: false, speedLimitKbps: 0, diff --git a/src/main/download-manager.ts b/src/main/download-manager.ts index 6b33a5b..6ad9d3a 100644 --- a/src/main/download-manager.ts +++ b/src/main/download-manager.ts @@ -2997,7 +2997,7 @@ export class DownloadManager extends EventEmitter { } private async acquirePostProcessSlot(): Promise { - const maxConcurrent = 2; + const maxConcurrent = this.settings.maxParallelExtract || 2; if (this.packagePostProcessActive < maxConcurrent) { this.packagePostProcessActive += 1; return; diff --git a/src/main/storage.ts b/src/main/storage.ts index f512b51..07776c0 100644 --- a/src/main/storage.ts +++ b/src/main/storage.ts @@ -96,6 +96,7 @@ export function normalizeSettings(settings: AppSettings): AppSettings { autoResumeOnStart: Boolean(settings.autoResumeOnStart), autoReconnect: Boolean(settings.autoReconnect), maxParallel: clampNumber(settings.maxParallel, defaults.maxParallel, 1, 50), + maxParallelExtract: clampNumber(settings.maxParallelExtract, defaults.maxParallelExtract, 1, 8), retryLimit: clampNumber(settings.retryLimit, defaults.retryLimit, 0, 99), reconnectWaitSeconds: clampNumber(settings.reconnectWaitSeconds, defaults.reconnectWaitSeconds, 10, 600), completedCleanupPolicy: settings.completedCleanupPolicy, diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index 29e97c0..7c42338 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -2431,6 +2431,7 @@ export function App(): ReactElement { +
setNum("maxParallelExtract", Math.max(1, Math.min(8, Number(e.target.value) || 2)))} />
diff --git a/src/shared/types.ts b/src/shared/types.ts index 9093cdc..4c2881c 100644 --- a/src/shared/types.ts +++ b/src/shared/types.ts @@ -65,6 +65,7 @@ export interface AppSettings { reconnectWaitSeconds: number; completedCleanupPolicy: FinishedCleanupPolicy; maxParallel: number; + maxParallelExtract: number; retryLimit: number; speedLimitEnabled: boolean; speedLimitKbps: number;