From 790ba0fc8410ff6dbcd90e6683176146f80b0a54 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Mon, 9 May 2011 17:42:41 +0000 Subject: [PATCH] Bug 345164: Avoid leaking pipes --- .../src/org/eclipse/cdt/dsf/gdb/launching/LaunchUtils.java | 4 ++++ .../src/org/eclipse/cdt/dsf/gdb/service/GDBBackend.java | 1 + 2 files changed, 5 insertions(+) diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/LaunchUtils.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/LaunchUtils.java index 88c10f4cfb0..29d2a1b911a 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/LaunchUtils.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/launching/LaunchUtils.java @@ -314,6 +314,10 @@ public class LaunchUtils { } catch (IOException e) { throw new DebugException(new Status(IStatus.ERROR, GdbPlugin.PLUGIN_ID, DebugException.REQUEST_FAILED, "Error reading GDB STDOUT after sending: " + cmd, e.getCause()));//$NON-NLS-1$ + } finally { + // Cleanup to avoid leaking pipes + // Bug 345164 + process.destroy(); } return getGDBVersionFromText(cmdOutput.toString()); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBBackend.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBBackend.java index 9fb36202af2..4c8659aaa52 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBBackend.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBBackend.java @@ -712,6 +712,7 @@ public class GDBBackend extends AbstractDsfService implements IGDBBackend { getExecutor().submit( new DsfRunnable() { public void run() { + destroy(); fBackendState = State.TERMINATED; getSession().dispatchEvent( new BackendStateChangedEvent(getSession().getId(), getId(), State.TERMINATED),