From 59ab49e0c5af4e4b64c414d24bf56e5bc845c9ee Mon Sep 17 00:00:00 2001 From: Glavo Date: Tue, 6 Feb 2024 17:16:23 +0800 Subject: [PATCH] Fix #2740 (#2746) --- .../java/org/jackhuang/hmcl/task/FetchTask.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FetchTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FetchTask.java index 5ff3154f6..669dd59f3 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FetchTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/task/FetchTask.java @@ -301,9 +301,16 @@ public abstract class FetchTask extends Task { concurrency = Math.max(concurrency, 1); synchronized (Schedulers.class) { downloadExecutorConcurrency = concurrency; - if (DOWNLOAD_EXECUTOR != null) { - DOWNLOAD_EXECUTOR.setCorePoolSize(concurrency); - DOWNLOAD_EXECUTOR.setMaximumPoolSize(concurrency); + + ThreadPoolExecutor downloadExecutor = DOWNLOAD_EXECUTOR; + if (downloadExecutor != null) { + if (downloadExecutor.getMaximumPoolSize() <= concurrency) { + downloadExecutor.setMaximumPoolSize(concurrency); + downloadExecutor.setCorePoolSize(concurrency); + } else { + downloadExecutor.setCorePoolSize(concurrency); + downloadExecutor.setMaximumPoolSize(concurrency); + } } } }