diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/launch/StackFramesVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/launch/StackFramesVMNode.java index bcdda198bb0..9e13c8321d9 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/launch/StackFramesVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/launch/StackFramesVMNode.java @@ -29,6 +29,7 @@ import org.eclipse.dd.dsf.debug.service.IRunControl.StateChangeReason; import org.eclipse.dd.dsf.debug.service.IStack.IFrameDMContext; import org.eclipse.dd.dsf.debug.service.IStack.IFrameDMData; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.IVMContext; import org.eclipse.dd.dsf.ui.viewmodel.ModelProxyInstalledEvent; import org.eclipse.dd.dsf.ui.viewmodel.VMChildrenUpdate; @@ -85,7 +86,7 @@ public class StackFramesVMNode extends AbstractDMVMNode getServicesTracker().getService(IStack.class).getFrames( execDmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -135,7 +136,7 @@ public class StackFramesVMNode extends AbstractDMVMNode getServicesTracker().getService(IStack.class).getTopFrame( execDmc, - new DataRequestMonitor(getExecutor(), null) { + new ViewerDataRequestMonitor(getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -198,7 +199,7 @@ public class StackFramesVMNode extends AbstractDMVMNode this, update, getServicesTracker().getService(IStack.class, null), dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override protected void handleCompleted() { /* @@ -309,7 +310,7 @@ public class StackFramesVMNode extends AbstractDMVMNode getElementsTopStackFrameOnly( new VMChildrenUpdate( parentDelta, getVMProvider().getPresentationContext(), -1, -1, - new DataRequestMonitor>(getExecutor(), null) { + new DataRequestMonitor>(getExecutor(), rm) { @Override public void handleCompleted() { if (isSuccess() && getData().size() != 0) { @@ -401,7 +402,7 @@ public class StackFramesVMNode extends AbstractDMVMNode getElementsTopStackFrameOnly( new VMChildrenUpdate( parentDelta, getVMProvider().getPresentationContext(), -1, -1, - new DataRequestMonitor>(getExecutor(), null) { + new DataRequestMonitor>(getExecutor(), rm) { @Override public void handleCompleted() { if (isSuccess() && getData().size() != 0) { @@ -451,7 +452,7 @@ public class StackFramesVMNode extends AbstractDMVMNode getElementsTopStackFrameOnly( new VMChildrenUpdate( parentDelta, getVMProvider().getPresentationContext(), -1, -1, - new DataRequestMonitor>(getExecutor(), null) { + new DataRequestMonitor>(getExecutor(), rm) { @Override public void handleCompleted() { if (isSuccess() && getData().size() != 0) { diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/modules/ModulesVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/modules/ModulesVMNode.java index ab2766f2b8c..be8905764b9 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/modules/ModulesVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/modules/ModulesVMNode.java @@ -13,7 +13,6 @@ package org.eclipse.dd.dsf.debug.internal.provisional.ui.viewmodel.modules; import java.util.concurrent.RejectedExecutionException; -import org.eclipse.dd.dsf.concurrent.DataRequestMonitor; import org.eclipse.dd.dsf.concurrent.DsfRunnable; import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants; import org.eclipse.dd.dsf.concurrent.RequestMonitor; @@ -26,6 +25,7 @@ import org.eclipse.dd.dsf.debug.service.IModules.IModuleDMData; import org.eclipse.dd.dsf.debug.service.IModules.ISymbolDMContext; import org.eclipse.dd.dsf.debug.ui.IDsfDebugUIConstants; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; @@ -66,7 +66,7 @@ public class ModulesVMNode extends AbstractDMVMNode if (symDmc != null) { getServicesTracker().getService(IModules.class).getModules( symDmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -119,7 +119,7 @@ public class ModulesVMNode extends AbstractDMVMNode getServicesTracker().getService(IModules.class, null).getModuleData( dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override protected void handleCompleted() { /* diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java index 0d11212aadb..668c5426a92 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterBitFieldVMNode.java @@ -43,6 +43,7 @@ import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterDMData; import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterGroupDMData; import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.IVMContext; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; @@ -175,7 +176,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode regService.getAvailableFormats( dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -225,7 +226,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode getDMVMProvider().getModelData( RegisterBitFieldVMNode.this, update, regService, valueDmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -308,7 +309,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode update, regService, dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override protected void handleCompleted() { /* @@ -456,7 +457,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode regService.getBitFields( regDmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override protected void handleFailure() { handleFailedUpdate(update); diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java index 17c4295ad56..55362a57469 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterGroupVMNode.java @@ -32,6 +32,7 @@ import org.eclipse.dd.dsf.debug.service.IRegisters.IGroupChangedDMEvent; import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterGroupDMContext; import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterGroupDMData; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.IVMContext; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; @@ -149,7 +150,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode regService.getRegisterGroups( createCompositeDMVMContext(update), - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -210,7 +211,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode update, regService, dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override protected void handleCompleted() { /* diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java index 89f8bef2937..766bc11400e 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/register/RegisterVMNode.java @@ -38,6 +38,7 @@ import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterDMContext; import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterDMData; import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterGroupDMData; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.IVMContext; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; @@ -178,7 +179,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode regService.getAvailableFormats( dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -228,7 +229,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode getDMVMProvider().getModelData( RegisterVMNode.this, update, regService, valueDmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -307,7 +308,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode update, regService, dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override protected void handleCompleted() { /* @@ -448,7 +449,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode regService.getRegisters( createCompositeDMVMContext(update), - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/variable/VariableVMNode.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/variable/VariableVMNode.java index 8c72b68971e..928b89f7261 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/variable/VariableVMNode.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/variable/VariableVMNode.java @@ -43,6 +43,7 @@ import org.eclipse.dd.dsf.debug.service.IStack.IFrameDMContext; import org.eclipse.dd.dsf.debug.service.IStack.IVariableDMContext; import org.eclipse.dd.dsf.debug.service.IStack.IVariableDMData; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.IVMContext; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; @@ -220,7 +221,7 @@ public class VariableVMNode extends AbstractExpressionVMNode this, update, getServicesTracker().getService(IExpressions.class, null), dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override protected void handleCompleted() { // Check that the request was evaluated and data is still valid. The request could @@ -332,7 +333,7 @@ public class VariableVMNode extends AbstractExpressionVMNode expressionService.getAvailableFormats( dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -384,7 +385,7 @@ public class VariableVMNode extends AbstractExpressionVMNode VariableVMNode.this, update, expressionService, valueDmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -580,7 +581,7 @@ public class VariableVMNode extends AbstractExpressionVMNode // the sub-expressions of the expression represented by the current expression node. final DataRequestMonitor rm = - new DataRequestMonitor(dsfExecutor, null) { + new ViewerDataRequestMonitor(dsfExecutor, update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -619,7 +620,7 @@ public class VariableVMNode extends AbstractExpressionVMNode // variables in the stack frame represented by frameDmc. final DataRequestMonitor rm = - new DataRequestMonitor(dsfExecutor, null) { + new ViewerDataRequestMonitor(dsfExecutor, update) { @Override public void handleCompleted() { if (!isSuccess()) { @@ -690,7 +691,7 @@ public class VariableVMNode extends AbstractExpressionVMNode for (IVariableDMContext localDMC : localsDMCs) { DataRequestMonitor rm = - new DataRequestMonitor(dsfExecutor, null) { + new ViewerDataRequestMonitor(dsfExecutor, update) { @Override public void handleCompleted() { localsDMData.add(getData()); diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java index 42ee3973964..b09d543d6cf 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMContentProviderStrategy.java @@ -20,6 +20,8 @@ import org.eclipse.dd.dsf.concurrent.CountingRequestMonitor; import org.eclipse.dd.dsf.concurrent.DataRequestMonitor; import org.eclipse.dd.dsf.concurrent.MultiRequestMonitor; import org.eclipse.dd.dsf.concurrent.RequestMonitor; +import org.eclipse.dd.dsf.ui.concurrent.ViewerCountingRequestMonitor; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenCountUpdate; import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate; import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider; @@ -145,7 +147,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider elementsUpdates[j][i] = new VMHasChildrenUpdate( update, hasChildrenMultiRequestMon.add( - new DataRequestMonitor(getVMProvider().getExecutor(), null) { + new ViewerDataRequestMonitor(getVMProvider().getExecutor(), update) { @Override protected void handleCompleted() { hasChildrenMultiRequestMon.requestMonitorDone(this); @@ -176,7 +178,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider getChildrenCountsForNode( update, node, - new DataRequestMonitor(getVMProvider().getExecutor(), null) { + new ViewerDataRequestMonitor(getVMProvider().getExecutor(), update) { @Override protected void handleCompleted() { if (isSuccess()) { @@ -214,7 +216,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider getChildrenCountsForNode( update, node, - new DataRequestMonitor(getVMProvider().getExecutor(), null) { + new ViewerDataRequestMonitor(getVMProvider().getExecutor(), update) { @Override protected void handleCompleted() { if (!isSuccess()) { @@ -265,7 +267,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider new VMChildrenCountUpdate( update, childrenCountMultiReqMon.add( - new DataRequestMonitor(getVMProvider().getExecutor(), null) { + new ViewerDataRequestMonitor(getVMProvider().getExecutor(), update) { @Override protected void handleSuccess() { counts[nodeIndex] = getData(); @@ -288,7 +290,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider private void updateChildrenWithCounts(final IChildrenUpdate update, IVMNode node, Integer[] nodeElementCounts) { // Create the multi request monitor to mark update when querying all // children nodes is finished. - CountingRequestMonitor multiRm = new CountingRequestMonitor(getVMProvider().getExecutor(), null) { + CountingRequestMonitor multiRm = new ViewerCountingRequestMonitor(getVMProvider().getExecutor(), update) { @Override protected void handleCompleted() { update.done(); diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMModelProxyStrategy.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMModelProxyStrategy.java index 0e3dd13cb16..36591b75c7c 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMModelProxyStrategy.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/DefaultVMModelProxyStrategy.java @@ -433,7 +433,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy { node, new VMChildrenUpdate( parentDelta, getVMProvider().getPresentationContext(), -1, -1, - new DataRequestMonitor>(getVMProvider().getExecutor(), null) { + new DataRequestMonitor>(getVMProvider().getExecutor(), requestMonitor) { @Override protected void handleCompleted() { if (fDisposed) return; @@ -497,7 +497,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy { getChildNodesElementOffsets( node, delta, calculateOffsets, - new DataRequestMonitor>(getVMProvider().getExecutor(), null) { + new DataRequestMonitor>(getVMProvider().getExecutor(), requestMonitor) { @Override protected void handleCompleted() { final CountingRequestMonitor multiRm = new CountingRequestMonitor(getVMProvider().getExecutor(), requestMonitor); @@ -574,7 +574,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy { new VMChildrenCountUpdate( delta, getVMProvider().getPresentationContext(), childrenCountMultiRequestMon.add( - new DataRequestMonitor(getVMProvider().getExecutor(), null) { + new DataRequestMonitor(getVMProvider().getExecutor(), rm) { @Override protected void handleCompleted() { counts[nodeIndex] = getData(); diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/properties/PropertyBasedLabelProvider.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/properties/PropertyBasedLabelProvider.java index 82c2893c42c..27a61f2f1f5 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/properties/PropertyBasedLabelProvider.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/properties/PropertyBasedLabelProvider.java @@ -25,6 +25,7 @@ import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants; import org.eclipse.dd.dsf.concurrent.ImmediateExecutor; import org.eclipse.dd.dsf.concurrent.ThreadSafe; import org.eclipse.dd.dsf.internal.ui.DsfUIPlugin; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.VMViewerUpdate; import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider; import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate; @@ -191,7 +192,7 @@ public class PropertyBasedLabelProvider final ILabelUpdate labelUpdate = labelUpdates[i]; propertiesUpdates[i] = new PropertiesUpdate( propertyNames, labelUpdates[i], - new DataRequestMonitor>(ImmediateExecutor.getInstance(), null) { + new ViewerDataRequestMonitor>(ImmediateExecutor.getInstance(), labelUpdates[i]) { @Override protected void handleCompleted() { if (isSuccess()) { diff --git a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java index 1d62bcb85e8..c12ae6d72d4 100644 --- a/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java +++ b/plugins/org.eclipse.dd.dsf.ui/src/org/eclipse/dd/dsf/ui/viewmodel/update/AbstractCachingVMProvider.java @@ -26,6 +26,7 @@ import org.eclipse.dd.dsf.datamodel.IDMContext; import org.eclipse.dd.dsf.datamodel.IDMData; import org.eclipse.dd.dsf.datamodel.IDMService; import org.eclipse.dd.dsf.ui.concurrent.ViewerCountingRequestMonitor; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMAdapter; import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMProvider; import org.eclipse.dd.dsf.ui.viewmodel.IVMModelProxy; @@ -294,18 +295,20 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa update.done(); } else { missUpdates.add( - new VMHasChildrenUpdate(update, new DataRequestMonitor(getExecutor(), null) { - @Override - protected void handleCompleted() { - if(isSuccess()) { - entry.fHasChildren = this.getData(); - update.setHasChilren(getData()); - } else { - update.setStatus(getStatus()); + new VMHasChildrenUpdate( + update, + new ViewerDataRequestMonitor(getExecutor(), update) { + @Override + protected void handleCompleted() { + if(isSuccess()) { + entry.fHasChildren = this.getData(); + update.setHasChilren(getData()); + } else { + update.setStatus(getStatus()); + } + update.done(); } - update.done(); - } - })); + })); } } @@ -322,18 +325,20 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa update.setChildCount(entry.fChildrenCount.intValue()); update.done(); } else { - IChildrenCountUpdate updateProxy = new VMChildrenCountUpdate(update, new DataRequestMonitor(getExecutor(), null) { - @Override - protected void handleCompleted() { - if(isSuccess()) { - entry.fChildrenCount = this.getData(); - update.setChildCount(getData()); - } else { - update.setStatus(getStatus()); + IChildrenCountUpdate updateProxy = new VMChildrenCountUpdate( + update, + new ViewerDataRequestMonitor(getExecutor(), update) { + @Override + protected void handleCompleted() { + if(isSuccess()) { + entry.fChildrenCount = this.getData(); + update.setChildCount(getData()); + } else { + update.setStatus(getStatus()); + } + update.done(); } - update.done(); - } - }); + }); super.updateNode(node, updateProxy); } } @@ -350,8 +355,7 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa // retrieved that before. IChildrenUpdate updateProxy = new VMChildrenUpdate( update, update.getOffset(), update.getLength(), - new DataRequestMonitor>(getExecutor(), null) - { + new ViewerDataRequestMonitor>(getExecutor(), update){ @Override protected void handleCompleted() { @@ -573,8 +577,6 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa */ @Override public IModelProxy createModelProxy(Object element, IPresentationContext context) { - assert getExecutor().isInExecutorThread(); - // Iterate through the current active proxies to try to find a proxy with the same // element and re-use it if found. At the same time purge proxies that are no longer IVMModelProxy proxy = null; @@ -704,7 +706,7 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa rm.done(); } else { service.getModelData(dmc, - new DataRequestMonitor(executor, rm) { + new ViewerDataRequestMonitor(executor, update) { @Override protected void handleCompleted() { if (isSuccess()) { diff --git a/plugins/org.eclipse.dd.examples.pda.ui/src/org/eclipse/dd/examples/pda/ui/viewmodel/launch/PDAProgramVMNode.java b/plugins/org.eclipse.dd.examples.pda.ui/src/org/eclipse/dd/examples/pda/ui/viewmodel/launch/PDAProgramVMNode.java index 452cd0869b2..6ea9b69cab3 100644 --- a/plugins/org.eclipse.dd.examples.pda.ui/src/org/eclipse/dd/examples/pda/ui/viewmodel/launch/PDAProgramVMNode.java +++ b/plugins/org.eclipse.dd.examples.pda.ui/src/org/eclipse/dd/examples/pda/ui/viewmodel/launch/PDAProgramVMNode.java @@ -15,7 +15,6 @@ import java.util.concurrent.RejectedExecutionException; import org.eclipse.core.runtime.CoreException; import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor; -import org.eclipse.dd.dsf.concurrent.DataRequestMonitor; import org.eclipse.dd.dsf.concurrent.DsfRunnable; import org.eclipse.dd.dsf.concurrent.ImmediateExecutor; import org.eclipse.dd.dsf.concurrent.RequestMonitor; @@ -26,8 +25,8 @@ import org.eclipse.dd.dsf.debug.service.IRunControl.IExecutionDMData; import org.eclipse.dd.dsf.debug.service.IRunControl.IResumedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMContext; -import org.eclipse.dd.dsf.ui.viewmodel.IVMAdapter; import org.eclipse.dd.dsf.ui.viewmodel.IVMNode; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode; @@ -199,7 +198,7 @@ public class PDAProgramVMNode extends AbstractDMVMNode // Retrieve the last state change reason runControl.getExecutionData( programCtx, - new DataRequestMonitor(ImmediateExecutor.getInstance(), null) + new ViewerDataRequestMonitor(ImmediateExecutor.getInstance(), update) { @Override public void handleCompleted(){ diff --git a/plugins/org.eclipse.dd.gdb.ui/src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java b/plugins/org.eclipse.dd.gdb.ui/src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java index 8db5d4dbab3..a6cec34506a 100644 --- a/plugins/org.eclipse.dd.gdb.ui/src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java +++ b/plugins/org.eclipse.dd.gdb.ui/src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ContainerVMNode.java @@ -14,7 +14,6 @@ package org.eclipse.dd.gdb.internal.ui.viewmodel.launch; import java.util.concurrent.RejectedExecutionException; -import org.eclipse.dd.dsf.concurrent.DataRequestMonitor; import org.eclipse.dd.dsf.concurrent.DsfRunnable; import org.eclipse.dd.dsf.concurrent.RequestMonitor; import org.eclipse.dd.dsf.datamodel.DMContexts; @@ -24,6 +23,7 @@ import org.eclipse.dd.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.dd.dsf.debug.service.IRunControl.IExitedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.IStartedDMEvent; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; @@ -102,7 +102,7 @@ public class ContainerVMNode extends AbstractDMVMNode runControl.getProcessData( dmc, - new DataRequestMonitor(getExecutor(), null) { + new ViewerDataRequestMonitor(getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) { diff --git a/plugins/org.eclipse.dd.gdb.ui/src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ThreadVMNode.java b/plugins/org.eclipse.dd.gdb.ui/src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ThreadVMNode.java index 6e5af62316a..32ef4a0a5f7 100644 --- a/plugins/org.eclipse.dd.gdb.ui/src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ThreadVMNode.java +++ b/plugins/org.eclipse.dd.gdb.ui/src/org/eclipse/dd/gdb/internal/ui/viewmodel/launch/ThreadVMNode.java @@ -33,6 +33,7 @@ import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.StateChangeReason; import org.eclipse.dd.dsf.internal.ui.DsfUIPlugin; import org.eclipse.dd.dsf.service.DsfSession; +import org.eclipse.dd.dsf.ui.concurrent.ViewerDataRequestMonitor; import org.eclipse.dd.dsf.ui.viewmodel.IVMContext; import org.eclipse.dd.dsf.ui.viewmodel.ModelProxyInstalledEvent; import org.eclipse.dd.dsf.ui.viewmodel.VMChildrenUpdate; @@ -74,7 +75,7 @@ public class ThreadVMNode extends AbstractDMVMNode } runControl.getExecutionContexts(contDmc, - new DataRequestMonitor(getSession().getExecutor(), null){ + new ViewerDataRequestMonitor(getSession().getExecutor(), update){ @Override public void handleCompleted() { if (!isSuccess()) { @@ -217,7 +218,7 @@ public class ThreadVMNode extends AbstractDMVMNode // Find the Reason for the State runControl.getExecutionData(dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted(){ if (!isSuccess()) { @@ -238,7 +239,7 @@ public class ThreadVMNode extends AbstractDMVMNode // Retrieve the rest of the thread information runControl.getThreadData( dmc, - new DataRequestMonitor(getSession().getExecutor(), null) { + new ViewerDataRequestMonitor(getSession().getExecutor(), update) { @Override public void handleCompleted() { if (!isSuccess()) {