diff options
author | Marc Khouzam | 2012-01-27 18:33:35 +0000 |
---|---|---|
committer | Marc Khouzam | 2012-01-27 18:33:35 +0000 |
commit | f13bdf3b334e088e06f032879ebe20f2836ca414 (patch) | |
tree | 2c6e3832fd8366a81059b98c482f6d1763a0a222 /cross | |
parent | 1928101334b17b7a97e4651d95dec114669cabec (diff) | |
download | org.eclipse.cdt-f13bdf3b334e088e06f032879ebe20f2836ca414.tar.gz org.eclipse.cdt-f13bdf3b334e088e06f032879ebe20f2836ca414.tar.xz org.eclipse.cdt-f13bdf3b334e088e06f032879ebe20f2836ca414.zip |
Bug 368597: Although we don't complete the launch, we still need to shutdown the DSF session as it was started already.
Diffstat (limited to 'cross')
-rw-r--r-- | cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java index 79b5907a4d3..7228896f969 100644 --- a/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java +++ b/cross/org.eclipse.cdt.launch.remote/src/org/eclipse/cdt/launch/remote/launching/RemoteGdbLaunchDelegate.java @@ -13,11 +13,14 @@ *******************************************************************************/ package org.eclipse.cdt.launch.remote.launching; +import java.util.concurrent.ExecutionException; import java.util.concurrent.RejectedExecutionException; import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; +import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; import org.eclipse.cdt.dsf.concurrent.DsfRunnable; import org.eclipse.cdt.dsf.concurrent.ImmediateRequestMonitor; +import org.eclipse.cdt.dsf.concurrent.Query; import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants; import org.eclipse.cdt.dsf.gdb.launching.GdbLaunch; import org.eclipse.cdt.dsf.gdb.launching.GdbLaunchDelegate; @@ -178,6 +181,19 @@ public class RemoteGdbLaunchDelegate extends GdbLaunchDelegate { if (remoteShellProcess != null) { remoteShellProcess.destroy(); } + + // Need to shutdown the DSF launch session because it is + // partially started already. + try { + l.getSession().getExecutor().execute(new DsfRunnable() { + public void run() { + l.shutdownSession(new ImmediateRequestMonitor()); + } + }); + } catch (RejectedExecutionException e) { + // Session disposed. + } + RSEHelper.abort(Messages.RemoteGdbLaunchDelegate_gdbserverFailedToStartErrorMessage, null, ICDTLaunchConfigurationConstants.ERR_DEBUGGER_NOT_INSTALLED); } |