diff --git a/src/main/java/net/fabricmc/loom/util/ThreadingUtils.java b/src/main/java/net/fabricmc/loom/util/ThreadingUtils.java index d79f5fa4..d6d06f79 100644 --- a/src/main/java/net/fabricmc/loom/util/ThreadingUtils.java +++ b/src/main/java/net/fabricmc/loom/util/ThreadingUtils.java @@ -58,7 +58,7 @@ public class ThreadingUtils { public static void run(Collection jobs) { try { - ExecutorService service = Executors.newFixedThreadPool(Math.min(jobs.size(), Runtime.getRuntime().availableProcessors() / 2)); + ExecutorService service = Executors.newFixedThreadPool(Math.max(1, Math.min(jobs.size(), Runtime.getRuntime().availableProcessors()))); List> futures = new LinkedList<>(); for (UnsafeRunnable runnable : jobs) { @@ -94,7 +94,7 @@ public class ThreadingUtils { public static List get(Collection> jobs) { try { - ExecutorService service = Executors.newFixedThreadPool(Math.min(jobs.size(), Runtime.getRuntime().availableProcessors() / 2)); + ExecutorService service = Executors.newFixedThreadPool(Math.max(1, Math.min(jobs.size(), Runtime.getRuntime().availableProcessors()))); List> futures = new LinkedList<>(); List result = new ArrayList<>(); @@ -138,7 +138,7 @@ public class ThreadingUtils { public static class TaskCompleter implements Function { Stopwatch stopwatch = Stopwatch.createUnstarted(); List> tasks = new ArrayList<>(); - ExecutorService service = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); + ExecutorService service = Executors.newFixedThreadPool(Math.max(1, Runtime.getRuntime().availableProcessors())); List> completionListener = new ArrayList<>(); public TaskCompleter add(UnsafeRunnable job) {