From 94f3972baba4ecc1e5dd6389a5349ea634617784 Mon Sep 17 00:00:00 2001 From: Rob Stryker Date: Mon, 21 Sep 2026 16:52:29 -0400 Subject: [PATCH] Fix InputStreamMonitor.writeNext() busy-spin after closeInputStream() Remove !fClosed from the wait loop condition. After closeInputStream() sets fClosed, the condition caused writeNext() to return immediately, making the writeLoop() spin at full CPU until close() sets fThread to null. See: https://github.com/eclipse-platform/eclipse.platform/pull/2882#pullrequestreview-5099819664 Fixes #764 Co-Authored-By: Claude Opus 4.6 --- .../rsp/eclipse/debug/internal/core/InputStreamMonitor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/bundles/org.jboss.tools.rsp.launching/src/main/java/org/jboss/tools/rsp/eclipse/debug/internal/core/InputStreamMonitor.java b/framework/bundles/org.jboss.tools.rsp.launching/src/main/java/org/jboss/tools/rsp/eclipse/debug/internal/core/InputStreamMonitor.java index 3f1ee1ca3..2584a95e9 100644 --- a/framework/bundles/org.jboss.tools.rsp.launching/src/main/java/org/jboss/tools/rsp/eclipse/debug/internal/core/InputStreamMonitor.java +++ b/framework/bundles/org.jboss.tools.rsp.launching/src/main/java/org/jboss/tools/rsp/eclipse/debug/internal/core/InputStreamMonitor.java @@ -158,7 +158,7 @@ private void writeNext() throws IOException { } try { synchronized (fLock) { - while (fQueue.isEmpty() && !fClosed && fThread != null) { + while (fQueue.isEmpty() && fThread != null) { fLock.wait(); } }