diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIProcesses.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIProcesses.java index eb7370e7bc3..b5577803f9b 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIProcesses.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIProcesses.java @@ -173,6 +173,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses { { /** * ID used by GDB to refer to threads. + * We use the same id as the one used in {@link MIProcesses#MIExecutionDMC} */ private final String fId; @@ -216,6 +217,7 @@ public class MIProcesses extends AbstractDsfService implements IMIProcesses { { /** * ID given by the OS. + * For practicality, we use the same id as the one used in {@link MIProcesses#MIExecutionGroupDMC} */ private final String fId; diff --git a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRunControlNS.java b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRunControlNS.java index e64d7b19893..ab8a0a75532 100644 --- a/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRunControlNS.java +++ b/plugins/org.eclipse.dd.mi/src/org/eclipse/dd/mi/service/MIRunControlNS.java @@ -73,7 +73,7 @@ import org.osgi.framework.BundleContext; public class MIRunControlNS extends AbstractDsfService implements IRunControl { @Immutable - static class ExecutionData implements IExecutionDMData { + private static class ExecutionData implements IExecutionDMData { private final StateChangeReason fReason; ExecutionData(StateChangeReason reason) { fReason = reason; @@ -91,7 +91,7 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl * @see MIRunControl */ @Immutable - static class RunControlEvent> extends AbstractDMEvent + private static class RunControlEvent> extends AbstractDMEvent implements IDMEvent, IMIDMEvent { final private T fMIInfo; @@ -107,7 +107,7 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl * Indicates that the given thread has been suspended. */ @Immutable - static class SuspendedEvent extends RunControlEvent + private static class SuspendedEvent extends RunControlEvent implements ISuspendedDMEvent { SuspendedEvent(IExecutionDMContext ctx, MIStoppedEvent miInfo) { @@ -134,7 +134,7 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl } @Immutable - static class ContainerSuspendedEvent extends SuspendedEvent + private static class ContainerSuspendedEvent extends SuspendedEvent implements IContainerSuspendedDMEvent { final IExecutionDMContext[] triggeringDmcs; @@ -150,15 +150,7 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl } @Immutable - static class ThreadSuspendedEvent extends SuspendedEvent - { - ThreadSuspendedEvent(IExecutionDMContext executionDmc, MIStoppedEvent miInfo) { - super(executionDmc, miInfo); - } - } - - @Immutable - static class ResumedEvent extends RunControlEvent + private static class ResumedEvent extends RunControlEvent implements IResumedDMEvent { ResumedEvent(IExecutionDMContext ctx, MIRunningEvent miInfo) { @@ -186,7 +178,7 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl } @Immutable - static class ContainerResumedEvent extends ResumedEvent + private static class ContainerResumedEvent extends ResumedEvent implements IContainerResumedDMEvent { final IExecutionDMContext[] triggeringDmcs; @@ -203,15 +195,7 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl } @Immutable - static class ThreadResumedEvent extends ResumedEvent - { - ThreadResumedEvent(IExecutionDMContext executionDmc, MIRunningEvent miInfo) { - super(executionDmc, miInfo); - } - } - - @Immutable - static class StartedDMEvent extends RunControlEvent + private static class StartedDMEvent extends RunControlEvent implements IStartedDMEvent { StartedDMEvent(IMIExecutionDMContext executionDmc, MIThreadCreatedEvent miInfo) { @@ -220,7 +204,7 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl } @Immutable - static class ExitedDMEvent extends RunControlEvent + private static class ExitedDMEvent extends RunControlEvent implements IExitedDMEvent { ExitedDMEvent(IMIExecutionDMContext executionDmc, MIThreadExitEvent miInfo) { @@ -719,21 +703,13 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl } // It's a thread execution context (since we are in non-stop mode) - event = new ThreadResumedEvent(e.getDMContext(), e); - updateThreadState(executionDmc, (ThreadResumedEvent) event); + event = new ResumedEvent(e.getDMContext(), e); + updateThreadState(executionDmc, (ResumedEvent) event); getSession().dispatchEvent(event, getProperties()); fMICommandCache.reset(); - - // Find the container context, which is used in multi-threaded debugging. - IContainerDMContext containerDmc = DMContexts.getAncestorOfType(e.getDMContext(), IContainerDMContext.class); - if (containerDmc != null) { - IExecutionDMContext triggeringCtx = !e.getDMContext().equals(containerDmc) ? e.getDMContext() : null; - event = new ContainerResumedEvent(containerDmc, e, triggeringCtx); - getSession().dispatchEvent(event, getProperties()); - } } - private void updateThreadState(IMIExecutionDMContext context, ThreadResumedEvent event) { + private void updateThreadState(IMIExecutionDMContext context, ResumedEvent event) { StateChangeReason reason = event.getReason(); boolean isStepping = reason.equals(StateChangeReason.STEP); MIThreadRunState threadState = fThreadRunStates.get(context); @@ -761,21 +737,13 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl } // It's a thread execution context (since we are in non-stop mode) - event = new ThreadSuspendedEvent(e.getDMContext(), e); - updateThreadState(executionDmc, (ThreadSuspendedEvent) event); + event = new SuspendedEvent(e.getDMContext(), e); + updateThreadState(executionDmc, (SuspendedEvent) event); getSession().dispatchEvent(event, getProperties()); fMICommandCache.reset(); - - // Find the container context, which is used in multi-threaded debugging. - IContainerDMContext containerDmc = DMContexts.getAncestorOfType(e.getDMContext(), IContainerDMContext.class); - if (containerDmc != null) { - IExecutionDMContext triggeringCtx = !e.getDMContext().equals(containerDmc) ? e.getDMContext() : null; - event = new ContainerSuspendedEvent(containerDmc, e, triggeringCtx); - getSession().dispatchEvent(event, getProperties()); - } } - private void updateThreadState(IMIExecutionDMContext context, ThreadSuspendedEvent event) { + private void updateThreadState(IMIExecutionDMContext context, SuspendedEvent event) { StateChangeReason reason = event.getReason(); MIThreadRunState threadState = fThreadRunStates.get(context); if (threadState == null) { @@ -813,35 +781,19 @@ public class MIRunControlNS extends AbstractDsfService implements IRunControl } @DsfServiceEventHandler - public void eventDispatched(ThreadResumedEvent e) { - IMIExecutionDMContext context = DMContexts.getAncestorOfType(e.getDMContext(), IMIExecutionDMContext.class); - if (context == null) { - return; - } + public void eventDispatched(ResumedEvent e) { } @DsfServiceEventHandler - public void eventDispatched(ThreadSuspendedEvent e) { - IMIExecutionDMContext context = DMContexts.getAncestorOfType(e.getDMContext(), IMIExecutionDMContext.class); - if (context == null) { - return; - } + public void eventDispatched(SuspendedEvent e) { } @DsfServiceEventHandler public void eventDispatched(ContainerResumedEvent e) { - IMIExecutionDMContext context = DMContexts.getAncestorOfType(e.getDMContext(), IMIExecutionDMContext.class); - if (context == null) { - return; - } } @DsfServiceEventHandler public void eventDispatched(ContainerSuspendedEvent e) { - IMIExecutionDMContext context = DMContexts.getAncestorOfType(e.getDMContext(), IMIExecutionDMContext.class); - if (context == null) { - return; - } } @DsfServiceEventHandler