From f7e9c26746dc310eca1c441fa07e61f4fc9dbbae Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Tue, 28 Mar 2023 23:31:36 +0100 Subject: [PATCH] concurrent fix --- .../java/stirling/software/SPDF/utils/ProcessExecutor.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/stirling/software/SPDF/utils/ProcessExecutor.java b/src/main/java/stirling/software/SPDF/utils/ProcessExecutor.java index 1e57ba8bc..97addfd83 100644 --- a/src/main/java/stirling/software/SPDF/utils/ProcessExecutor.java +++ b/src/main/java/stirling/software/SPDF/utils/ProcessExecutor.java @@ -1,13 +1,13 @@ package stirling.software.SPDF.utils; import java.io.BufferedReader; +import java.util.concurrent.ConcurrentHashMap; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.HashMap; import java.util.concurrent.Semaphore; public class ProcessExecutor { @@ -16,7 +16,8 @@ public class ProcessExecutor { OCR_MY_PDF } - private static final Map instances = new HashMap<>(); + private static final Map instances = new ConcurrentHashMap<>(); + private final Semaphore semaphore; @@ -27,7 +28,7 @@ public class ProcessExecutor { public static ProcessExecutor getInstance(Processes processType) { return instances.computeIfAbsent(processType, key -> { int semaphoreLimit = switch (key) { - case LIBRE_OFFICE -> 2; + case LIBRE_OFFICE -> 1; case OCR_MY_PDF -> 2; }; return new ProcessExecutor(semaphoreLimit);