From ba8a75c84bf1d182b136e74106792f09e9e5df26 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Fri, 29 Dec 2023 15:10:32 +0100 Subject: [PATCH] Fix bug in ProcessingIterator where it would run the tasks in only one single thread instead of using the pool --- .../nu/marginalia/util/ProcessingIterator.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/code/libraries/blocking-thread-pool/src/main/java/nu/marginalia/util/ProcessingIterator.java b/code/libraries/blocking-thread-pool/src/main/java/nu/marginalia/util/ProcessingIterator.java index 08459b76..52c93bb4 100644 --- a/code/libraries/blocking-thread-pool/src/main/java/nu/marginalia/util/ProcessingIterator.java +++ b/code/libraries/blocking-thread-pool/src/main/java/nu/marginalia/util/ProcessingIterator.java @@ -38,7 +38,7 @@ public class ProcessingIterator implements Iterator { private void executeJob(ProcessingJob job) { try { - job.run(j -> executorService.submit(() -> executeTask(j))); + job.run(this::executeTask); } catch (Exception e) { logger.warn("Exception while processing", e); } finally { @@ -53,13 +53,15 @@ public class ProcessingIterator implements Iterator { return; } - try { - queue.put(task.get()); - } catch (Exception e) { - logger.warn("Exception while processing", e); - } finally { - sem.release(); - } + executorService.submit(() -> { + try { + queue.put(task.get()); + } catch (Exception e) { + logger.warn("Exception while processing", e); + } finally { + sem.release(); + } + }); } /** Returns true if there are more documents to be processed.