From ba002a3d87fe8bd957d2f299c02b8aa4751b47ba Mon Sep 17 00:00:00 2001 From: dl Date: Thu, 15 Aug 2013 15:01:37 +0100 Subject: [PATCH] 8023103: FJ parallelism zero 8020537: java/util/concurrent/forkjoin/ThrowingRunnable.java Reviewed-by: chegar, mduigou, alanb --- src/share/classes/java/util/concurrent/ForkJoinPool.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/share/classes/java/util/concurrent/ForkJoinPool.java b/src/share/classes/java/util/concurrent/ForkJoinPool.java index 6db2d48c1..749f8b573 100644 --- a/src/share/classes/java/util/concurrent/ForkJoinPool.java +++ b/src/share/classes/java/util/concurrent/ForkJoinPool.java @@ -144,7 +144,8 @@ import java.util.concurrent.TimeUnit; * Upon any error in establishing these settings, default parameters * are used. It is possible to disable or limit the use of threads in * the common pool by setting the parallelism property to zero, and/or - * using a factory that may return {@code null}. + * using a factory that may return {@code null}. However doing so may + * cause unjoined tasks to never be executed. * *

Implementation notes: This implementation restricts the * maximum number of running threads to 32767. Attempts to create @@ -3303,8 +3304,8 @@ public class ForkJoinPool extends AbstractExecutorService { } if (parallelism < 0 && // default 1 less than #cores - (parallelism = Runtime.getRuntime().availableProcessors() - 1) < 0) - parallelism = 0; + (parallelism = Runtime.getRuntime().availableProcessors() - 1) <= 0) + parallelism = 1; if (parallelism > MAX_CAP) parallelism = MAX_CAP; return new ForkJoinPool(parallelism, factory, handler, LIFO_QUEUE, -- GitLab