From e16865b28cf2ad6a931d5d0ba3a666cdda53f5fa Mon Sep 17 00:00:00 2001 From: Nathaniel Bauernfeind Date: Mon, 29 Jan 2024 16:28:15 -0700 Subject: [PATCH] Be a little more explicit with the fork join poool --- .../deephaven/engine/context/QueryCompiler.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/engine/context/src/main/java/io/deephaven/engine/context/QueryCompiler.java b/engine/context/src/main/java/io/deephaven/engine/context/QueryCompiler.java index 6c8ddcbebcc..6d409c81612 100644 --- a/engine/context/src/main/java/io/deephaven/engine/context/QueryCompiler.java +++ b/engine/context/src/main/java/io/deephaven/engine/context/QueryCompiler.java @@ -33,10 +33,7 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.*; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ForkJoinPool; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; import java.util.function.Consumer; import java.util.function.Supplier; import java.util.jar.Attributes; @@ -851,12 +848,16 @@ private void maybeCreateClass( 0, requests.length); } else { int numTasks = (requests.length + requestsPerTask - 1) / requestsPerTask; - IntStream.range(0, numTasks).parallel().forEach(jobId -> { + ForkJoinTask[] tasks = new ForkJoinTask[numTasks]; + for (int jobId = 0; jobId < numTasks; ++jobId) { final int startInclusive = jobId * requestsPerTask; final int endExclusive = Math.min(requests.length, (jobId + 1) * requestsPerTask); - maybeCreateClassHelper(compiler, fileManager, requests, rootPathAsString, tempDirAsString, - startInclusive, endExclusive); - }); + tasks[jobId] = ForkJoinPool.commonPool().submit(() -> { + maybeCreateClassHelper(compiler, fileManager, requests, rootPathAsString, tempDirAsString, + startInclusive, endExclusive); + }); + } + Arrays.stream(tasks).forEach(ForkJoinTask::join); } log.error().append("Compiled in ").append(Double.toString((System.nanoTime() - startTm) / 1e9)).append("s.").endl(); } catch (final Throwable t) {