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 e4346d12cfd..d4c0f88f914 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 @@ -144,7 +144,14 @@ public class GDBBackend extends AbstractDsfService implements IGDBBackend { new MonitorJobStep(InitializationShutdownStep.Direction.SHUTTING_DOWN), new GDBProcessStep(InitializationShutdownStep.Direction.SHUTTING_DOWN), }; - Sequence shutdownSequence = new Sequence(getExecutor(), requestMonitor) { + Sequence shutdownSequence = + new Sequence(getExecutor(), + new RequestMonitor(getExecutor(), requestMonitor) { + @Override + protected void handleCompleted() { + GDBBackend.super.shutdown(requestMonitor); + } + }) { @Override public Step[] getSteps() { return shutdownSteps; } }; getExecutor().execute(shutdownSequence); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl.java index dafd26667e8..fc51f34e535 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl.java @@ -165,7 +165,14 @@ public class GDBControl extends AbstractMIControl implements IGDBControl { new InferiorInputOutputInitStep(InitializationShutdownStep.Direction.SHUTTING_DOWN), new CommandMonitoringStep(InitializationShutdownStep.Direction.SHUTTING_DOWN), }; - Sequence shutdownSequence = new Sequence(getExecutor(), requestMonitor) { + Sequence shutdownSequence = + new Sequence(getExecutor(), + new RequestMonitor(getExecutor(), requestMonitor) { + @Override + protected void handleCompleted() { + GDBControl.super.shutdown(requestMonitor); + } + }) { @Override public Step[] getSteps() { return shutdownSteps; } }; getExecutor().execute(shutdownSequence); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java index 949503310b1..b4bddc2b3f9 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/command/GDBControl_7_0.java @@ -167,7 +167,14 @@ public class GDBControl_7_0 extends AbstractMIControl implements IGDBControl { new InferiorInputOutputInitStep(InitializationShutdownStep.Direction.SHUTTING_DOWN), new CommandMonitoringStep(InitializationShutdownStep.Direction.SHUTTING_DOWN), }; - Sequence shutdownSequence = new Sequence(getExecutor(), requestMonitor) { + Sequence shutdownSequence = + new Sequence(getExecutor(), + new RequestMonitor(getExecutor(), requestMonitor) { + @Override + protected void handleCompleted() { + GDBControl_7_0.super.shutdown(requestMonitor); + } + }) { @Override public Step[] getSteps() { return shutdownSteps; } }; getExecutor().execute(shutdownSequence); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java index 2552792acbe..6df9b7e4f76 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpoints.java @@ -286,7 +286,7 @@ public class MIBreakpoints extends AbstractDsfService implements IBreakpoints public void shutdown(final RequestMonitor rm) { unregister(); getSession().removeServiceEventListener(this); - rm.done(); + super.shutdown(rm); } /* (non-Javadoc) diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIDisassembly.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIDisassembly.java index ca31a085f8c..2e56e200eb3 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIDisassembly.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIDisassembly.java @@ -75,7 +75,7 @@ public class MIDisassembly extends AbstractDsfService implements IDisassembly { public void shutdown(RequestMonitor rm) { unregister(); // getSession().removeServiceEventListener(this); - rm.done(); + super.shutdown(rm); } /* (non-Javadoc)