From 7e89eca7d2956b0b3eb6288106f9db6f0ec43463 Mon Sep 17 00:00:00 2001 From: Cayden Tisdale Date: Thu, 1 Oct 2026 20:31:47 -0400 Subject: [PATCH] Run Redline compiler threads as daemons --- .../experimental/compiler/internal/NativeCompiler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/redline/compiler/src/main/java/run/endive/redline/experimental/compiler/internal/NativeCompiler.java b/redline/compiler/src/main/java/run/endive/redline/experimental/compiler/internal/NativeCompiler.java index cafc8e092..d0f4f8079 100644 --- a/redline/compiler/src/main/java/run/endive/redline/experimental/compiler/internal/NativeCompiler.java +++ b/redline/compiler/src/main/java/run/endive/redline/experimental/compiler/internal/NativeCompiler.java @@ -101,7 +101,15 @@ int branchArgCount() { private static final int THREAD_COUNT = Math.max(1, Runtime.getRuntime().availableProcessors() / 2); - private static final ExecutorService POOL = Executors.newFixedThreadPool(THREAD_COUNT); + // Use daemon threads to avoid keeping an active JVM running no work in the background + private static final ExecutorService POOL = + Executors.newFixedThreadPool( + THREAD_COUNT, + task -> { + Thread thread = new Thread(task, "redline-compiler"); + thread.setDaemon(true); + return thread; + }); public static byte[][] compileAll(String triple, WasmModule module) { return new NativeCompiler(null, triple, module).compileAll((boolean[]) null);