1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-06 09:16:02 +02:00

[205871] - Switched to using ViewerDataRequestMonitor to avoid setting a CANCEL status to a viewer update request monitor.

This commit is contained in:
Pawel Piech 2008-05-09 20:18:37 +00:00
parent 9bff408ec5
commit 7e61e9f632
13 changed files with 79 additions and 69 deletions

View file

@ -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.IFrameDMContext;
import org.eclipse.dd.dsf.debug.service.IStack.IFrameDMData; import org.eclipse.dd.dsf.debug.service.IStack.IFrameDMData;
import org.eclipse.dd.dsf.service.DsfSession; 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.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.ModelProxyInstalledEvent; import org.eclipse.dd.dsf.ui.viewmodel.ModelProxyInstalledEvent;
import org.eclipse.dd.dsf.ui.viewmodel.VMChildrenUpdate; import org.eclipse.dd.dsf.ui.viewmodel.VMChildrenUpdate;
@ -85,7 +86,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
getServicesTracker().getService(IStack.class).getFrames( getServicesTracker().getService(IStack.class).getFrames(
execDmc, execDmc,
new DataRequestMonitor<IFrameDMContext[]>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IFrameDMContext[]>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -135,7 +136,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
getServicesTracker().getService(IStack.class).getTopFrame( getServicesTracker().getService(IStack.class).getTopFrame(
execDmc, execDmc,
new DataRequestMonitor<IFrameDMContext>(getExecutor(), null) { new ViewerDataRequestMonitor<IFrameDMContext>(getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -198,7 +199,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
this, update, this, update,
getServicesTracker().getService(IStack.class, null), getServicesTracker().getService(IStack.class, null),
dmc, dmc,
new DataRequestMonitor<IFrameDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IFrameDMData>(getSession().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
/* /*
@ -309,7 +310,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
getElementsTopStackFrameOnly( getElementsTopStackFrameOnly(
new VMChildrenUpdate( new VMChildrenUpdate(
parentDelta, getVMProvider().getPresentationContext(), -1, -1, parentDelta, getVMProvider().getPresentationContext(), -1, -1,
new DataRequestMonitor<List<Object>>(getExecutor(), null) { new DataRequestMonitor<List<Object>>(getExecutor(), rm) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (isSuccess() && getData().size() != 0) { if (isSuccess() && getData().size() != 0) {
@ -401,7 +402,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
getElementsTopStackFrameOnly( getElementsTopStackFrameOnly(
new VMChildrenUpdate( new VMChildrenUpdate(
parentDelta, getVMProvider().getPresentationContext(), -1, -1, parentDelta, getVMProvider().getPresentationContext(), -1, -1,
new DataRequestMonitor<List<Object>>(getExecutor(), null) { new DataRequestMonitor<List<Object>>(getExecutor(), rm) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (isSuccess() && getData().size() != 0) { if (isSuccess() && getData().size() != 0) {
@ -451,7 +452,7 @@ public class StackFramesVMNode extends AbstractDMVMNode
getElementsTopStackFrameOnly( getElementsTopStackFrameOnly(
new VMChildrenUpdate( new VMChildrenUpdate(
parentDelta, getVMProvider().getPresentationContext(), -1, -1, parentDelta, getVMProvider().getPresentationContext(), -1, -1,
new DataRequestMonitor<List<Object>>(getExecutor(), null) { new DataRequestMonitor<List<Object>>(getExecutor(), rm) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (isSuccess() && getData().size() != 0) { if (isSuccess() && getData().size() != 0) {

View file

@ -13,7 +13,6 @@ package org.eclipse.dd.dsf.debug.internal.provisional.ui.viewmodel.modules;
import java.util.concurrent.RejectedExecutionException; 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.DsfRunnable;
import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants; import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants;
import org.eclipse.dd.dsf.concurrent.RequestMonitor; 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.service.IModules.ISymbolDMContext;
import org.eclipse.dd.dsf.debug.ui.IDsfDebugUIConstants; import org.eclipse.dd.dsf.debug.ui.IDsfDebugUIConstants;
import org.eclipse.dd.dsf.service.DsfSession; 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.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider;
@ -66,7 +66,7 @@ public class ModulesVMNode extends AbstractDMVMNode
if (symDmc != null) { if (symDmc != null) {
getServicesTracker().getService(IModules.class).getModules( getServicesTracker().getService(IModules.class).getModules(
symDmc, symDmc,
new DataRequestMonitor<IModuleDMContext[]>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IModuleDMContext[]>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -119,7 +119,7 @@ public class ModulesVMNode extends AbstractDMVMNode
getServicesTracker().getService(IModules.class, null).getModuleData( getServicesTracker().getService(IModules.class, null).getModuleData(
dmc, dmc,
new DataRequestMonitor<IModuleDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IModuleDMData>(getSession().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
/* /*

View file

@ -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.IRegisters.IRegisterGroupDMData;
import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent;
import org.eclipse.dd.dsf.service.DsfSession; 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.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider;
@ -175,7 +176,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
regService.getAvailableFormats( regService.getAvailableFormats(
dmc, dmc,
new DataRequestMonitor<String[]>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<String[]>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -225,7 +226,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
getDMVMProvider().getModelData( getDMVMProvider().getModelData(
RegisterBitFieldVMNode.this, update, regService, valueDmc, RegisterBitFieldVMNode.this, update, regService, valueDmc,
new DataRequestMonitor<FormattedValueDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<FormattedValueDMData>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -308,7 +309,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
update, update,
regService, regService,
dmc, dmc,
new DataRequestMonitor<IBitFieldDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IBitFieldDMData>(getSession().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
/* /*
@ -456,7 +457,7 @@ public class RegisterBitFieldVMNode extends AbstractExpressionVMNode
regService.getBitFields( regService.getBitFields(
regDmc, regDmc,
new DataRequestMonitor<IBitFieldDMContext[]>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IBitFieldDMContext[]>(getSession().getExecutor(), update) {
@Override @Override
protected void handleFailure() { protected void handleFailure() {
handleFailedUpdate(update); handleFailedUpdate(update);

View file

@ -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.IRegisterGroupDMContext;
import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterGroupDMData; import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterGroupDMData;
import org.eclipse.dd.dsf.service.DsfSession; 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.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider;
@ -149,7 +150,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
regService.getRegisterGroups( regService.getRegisterGroups(
createCompositeDMVMContext(update), createCompositeDMVMContext(update),
new DataRequestMonitor<IRegisterGroupDMContext[]>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IRegisterGroupDMContext[]>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -210,7 +211,7 @@ public class RegisterGroupVMNode extends AbstractExpressionVMNode
update, update,
regService, regService,
dmc, dmc,
new DataRequestMonitor<IRegisterGroupDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IRegisterGroupDMData>(getSession().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
/* /*

View file

@ -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.IRegisterDMData;
import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterGroupDMData; import org.eclipse.dd.dsf.debug.service.IRegisters.IRegisterGroupDMData;
import org.eclipse.dd.dsf.service.DsfSession; 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.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider;
@ -178,7 +179,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
regService.getAvailableFormats( regService.getAvailableFormats(
dmc, dmc,
new DataRequestMonitor<String[]>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<String[]>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -228,7 +229,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
getDMVMProvider().getModelData( getDMVMProvider().getModelData(
RegisterVMNode.this, update, regService, valueDmc, RegisterVMNode.this, update, regService, valueDmc,
new DataRequestMonitor<FormattedValueDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<FormattedValueDMData>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -307,7 +308,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
update, update,
regService, regService,
dmc, dmc,
new DataRequestMonitor<IRegisterDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IRegisterDMData>(getSession().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
/* /*
@ -448,7 +449,7 @@ public class RegisterVMNode extends AbstractExpressionVMNode
regService.getRegisters( regService.getRegisters(
createCompositeDMVMContext(update), createCompositeDMVMContext(update),
new DataRequestMonitor<IRegisterDMContext[]>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IRegisterDMContext[]>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {

View file

@ -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.IVariableDMContext;
import org.eclipse.dd.dsf.debug.service.IStack.IVariableDMData; import org.eclipse.dd.dsf.debug.service.IStack.IVariableDMData;
import org.eclipse.dd.dsf.service.DsfSession; 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.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; import org.eclipse.dd.dsf.ui.viewmodel.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider;
@ -220,7 +221,7 @@ public class VariableVMNode extends AbstractExpressionVMNode
this, update, this, update,
getServicesTracker().getService(IExpressions.class, null), getServicesTracker().getService(IExpressions.class, null),
dmc, dmc,
new DataRequestMonitor<IExpressionDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IExpressionDMData>(getSession().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
// Check that the request was evaluated and data is still valid. The request could // 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( expressionService.getAvailableFormats(
dmc, dmc,
new DataRequestMonitor<String[]>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<String[]>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -384,7 +385,7 @@ public class VariableVMNode extends AbstractExpressionVMNode
VariableVMNode.this, update, VariableVMNode.this, update,
expressionService, expressionService,
valueDmc, valueDmc,
new DataRequestMonitor<FormattedValueDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<FormattedValueDMData>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -580,7 +581,7 @@ public class VariableVMNode extends AbstractExpressionVMNode
// the sub-expressions of the expression represented by the current expression node. // the sub-expressions of the expression represented by the current expression node.
final DataRequestMonitor<IExpressionDMContext[]> rm = final DataRequestMonitor<IExpressionDMContext[]> rm =
new DataRequestMonitor<IExpressionDMContext[]>(dsfExecutor, null) { new ViewerDataRequestMonitor<IExpressionDMContext[]>(dsfExecutor, update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -619,7 +620,7 @@ public class VariableVMNode extends AbstractExpressionVMNode
// variables in the stack frame represented by frameDmc. // variables in the stack frame represented by frameDmc.
final DataRequestMonitor<IVariableDMContext[]> rm = final DataRequestMonitor<IVariableDMContext[]> rm =
new DataRequestMonitor<IVariableDMContext[]>(dsfExecutor, null) { new ViewerDataRequestMonitor<IVariableDMContext[]>(dsfExecutor, update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -690,7 +691,7 @@ public class VariableVMNode extends AbstractExpressionVMNode
for (IVariableDMContext localDMC : localsDMCs) { for (IVariableDMContext localDMC : localsDMCs) {
DataRequestMonitor<IVariableDMData> rm = DataRequestMonitor<IVariableDMData> rm =
new DataRequestMonitor<IVariableDMData>(dsfExecutor, null) { new ViewerDataRequestMonitor<IVariableDMData>(dsfExecutor, update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
localsDMData.add(getData()); localsDMData.add(getData());

View file

@ -20,6 +20,8 @@ import org.eclipse.dd.dsf.concurrent.CountingRequestMonitor;
import org.eclipse.dd.dsf.concurrent.DataRequestMonitor; import org.eclipse.dd.dsf.concurrent.DataRequestMonitor;
import org.eclipse.dd.dsf.concurrent.MultiRequestMonitor; import org.eclipse.dd.dsf.concurrent.MultiRequestMonitor;
import org.eclipse.dd.dsf.concurrent.RequestMonitor; 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.IChildrenCountUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate; import org.eclipse.debug.internal.ui.viewers.model.provisional.IChildrenUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider; import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementContentProvider;
@ -145,7 +147,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider
elementsUpdates[j][i] = new VMHasChildrenUpdate( elementsUpdates[j][i] = new VMHasChildrenUpdate(
update, update,
hasChildrenMultiRequestMon.add( hasChildrenMultiRequestMon.add(
new DataRequestMonitor<Boolean>(getVMProvider().getExecutor(), null) { new ViewerDataRequestMonitor<Boolean>(getVMProvider().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
hasChildrenMultiRequestMon.requestMonitorDone(this); hasChildrenMultiRequestMon.requestMonitorDone(this);
@ -176,7 +178,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider
getChildrenCountsForNode( getChildrenCountsForNode(
update, update,
node, node,
new DataRequestMonitor<Integer[]>(getVMProvider().getExecutor(), null) { new ViewerDataRequestMonitor<Integer[]>(getVMProvider().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
if (isSuccess()) { if (isSuccess()) {
@ -214,7 +216,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider
getChildrenCountsForNode( getChildrenCountsForNode(
update, update,
node, node,
new DataRequestMonitor<Integer[]>(getVMProvider().getExecutor(), null) { new ViewerDataRequestMonitor<Integer[]>(getVMProvider().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -265,7 +267,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider
new VMChildrenCountUpdate( new VMChildrenCountUpdate(
update, update,
childrenCountMultiReqMon.add( childrenCountMultiReqMon.add(
new DataRequestMonitor<Integer>(getVMProvider().getExecutor(), null) { new ViewerDataRequestMonitor<Integer>(getVMProvider().getExecutor(), update) {
@Override @Override
protected void handleSuccess() { protected void handleSuccess() {
counts[nodeIndex] = getData(); counts[nodeIndex] = getData();
@ -288,7 +290,7 @@ public class DefaultVMContentProviderStrategy implements IElementContentProvider
private void updateChildrenWithCounts(final IChildrenUpdate update, IVMNode node, Integer[] nodeElementCounts) { private void updateChildrenWithCounts(final IChildrenUpdate update, IVMNode node, Integer[] nodeElementCounts) {
// Create the multi request monitor to mark update when querying all // Create the multi request monitor to mark update when querying all
// children nodes is finished. // children nodes is finished.
CountingRequestMonitor multiRm = new CountingRequestMonitor(getVMProvider().getExecutor(), null) { CountingRequestMonitor multiRm = new ViewerCountingRequestMonitor(getVMProvider().getExecutor(), update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
update.done(); update.done();

View file

@ -433,7 +433,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
node, node,
new VMChildrenUpdate( new VMChildrenUpdate(
parentDelta, getVMProvider().getPresentationContext(), -1, -1, parentDelta, getVMProvider().getPresentationContext(), -1, -1,
new DataRequestMonitor<List<Object>>(getVMProvider().getExecutor(), null) { new DataRequestMonitor<List<Object>>(getVMProvider().getExecutor(), requestMonitor) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
if (fDisposed) return; if (fDisposed) return;
@ -497,7 +497,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
getChildNodesElementOffsets( getChildNodesElementOffsets(
node, delta, calculateOffsets, node, delta, calculateOffsets,
new DataRequestMonitor<Map<IVMNode, Integer>>(getVMProvider().getExecutor(), null) { new DataRequestMonitor<Map<IVMNode, Integer>>(getVMProvider().getExecutor(), requestMonitor) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
final CountingRequestMonitor multiRm = new CountingRequestMonitor(getVMProvider().getExecutor(), requestMonitor); final CountingRequestMonitor multiRm = new CountingRequestMonitor(getVMProvider().getExecutor(), requestMonitor);
@ -574,7 +574,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy {
new VMChildrenCountUpdate( new VMChildrenCountUpdate(
delta, getVMProvider().getPresentationContext(), delta, getVMProvider().getPresentationContext(),
childrenCountMultiRequestMon.add( childrenCountMultiRequestMon.add(
new DataRequestMonitor<Integer>(getVMProvider().getExecutor(), null) { new DataRequestMonitor<Integer>(getVMProvider().getExecutor(), rm) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
counts[nodeIndex] = getData(); counts[nodeIndex] = getData();

View file

@ -25,6 +25,7 @@ import org.eclipse.dd.dsf.concurrent.IDsfStatusConstants;
import org.eclipse.dd.dsf.concurrent.ImmediateExecutor; import org.eclipse.dd.dsf.concurrent.ImmediateExecutor;
import org.eclipse.dd.dsf.concurrent.ThreadSafe; import org.eclipse.dd.dsf.concurrent.ThreadSafe;
import org.eclipse.dd.dsf.internal.ui.DsfUIPlugin; 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.dd.dsf.ui.viewmodel.VMViewerUpdate;
import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider; import org.eclipse.debug.internal.ui.viewers.model.provisional.IElementLabelProvider;
import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate; import org.eclipse.debug.internal.ui.viewers.model.provisional.ILabelUpdate;
@ -191,7 +192,7 @@ public class PropertyBasedLabelProvider
final ILabelUpdate labelUpdate = labelUpdates[i]; final ILabelUpdate labelUpdate = labelUpdates[i];
propertiesUpdates[i] = new PropertiesUpdate( propertiesUpdates[i] = new PropertiesUpdate(
propertyNames, labelUpdates[i], propertyNames, labelUpdates[i],
new DataRequestMonitor<Map<String, Object>>(ImmediateExecutor.getInstance(), null) { new ViewerDataRequestMonitor<Map<String, Object>>(ImmediateExecutor.getInstance(), labelUpdates[i]) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
if (isSuccess()) { if (isSuccess()) {

View file

@ -26,6 +26,7 @@ import org.eclipse.dd.dsf.datamodel.IDMContext;
import org.eclipse.dd.dsf.datamodel.IDMData; import org.eclipse.dd.dsf.datamodel.IDMData;
import org.eclipse.dd.dsf.datamodel.IDMService; import org.eclipse.dd.dsf.datamodel.IDMService;
import org.eclipse.dd.dsf.ui.concurrent.ViewerCountingRequestMonitor; 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.AbstractVMAdapter;
import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMProvider; import org.eclipse.dd.dsf.ui.viewmodel.AbstractVMProvider;
import org.eclipse.dd.dsf.ui.viewmodel.IVMModelProxy; import org.eclipse.dd.dsf.ui.viewmodel.IVMModelProxy;
@ -294,18 +295,20 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa
update.done(); update.done();
} else { } else {
missUpdates.add( missUpdates.add(
new VMHasChildrenUpdate(update, new DataRequestMonitor<Boolean>(getExecutor(), null) { new VMHasChildrenUpdate(
@Override update,
protected void handleCompleted() { new ViewerDataRequestMonitor<Boolean>(getExecutor(), update) {
if(isSuccess()) { @Override
entry.fHasChildren = this.getData(); protected void handleCompleted() {
update.setHasChilren(getData()); if(isSuccess()) {
} else { entry.fHasChildren = this.getData();
update.setStatus(getStatus()); 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.setChildCount(entry.fChildrenCount.intValue());
update.done(); update.done();
} else { } else {
IChildrenCountUpdate updateProxy = new VMChildrenCountUpdate(update, new DataRequestMonitor<Integer>(getExecutor(), null) { IChildrenCountUpdate updateProxy = new VMChildrenCountUpdate(
@Override update,
protected void handleCompleted() { new ViewerDataRequestMonitor<Integer>(getExecutor(), update) {
if(isSuccess()) { @Override
entry.fChildrenCount = this.getData(); protected void handleCompleted() {
update.setChildCount(getData()); if(isSuccess()) {
} else { entry.fChildrenCount = this.getData();
update.setStatus(getStatus()); update.setChildCount(getData());
} else {
update.setStatus(getStatus());
}
update.done();
} }
update.done(); });
}
});
super.updateNode(node, updateProxy); super.updateNode(node, updateProxy);
} }
} }
@ -350,8 +355,7 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa
// retrieved that before. // retrieved that before.
IChildrenUpdate updateProxy = new VMChildrenUpdate( IChildrenUpdate updateProxy = new VMChildrenUpdate(
update, update.getOffset(), update.getLength(), update, update.getOffset(), update.getLength(),
new DataRequestMonitor<List<Object>>(getExecutor(), null) new ViewerDataRequestMonitor<List<Object>>(getExecutor(), update){
{
@Override @Override
protected void handleCompleted() protected void handleCompleted()
{ {
@ -573,8 +577,6 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa
*/ */
@Override @Override
public IModelProxy createModelProxy(Object element, IPresentationContext context) { 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 // 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 // element and re-use it if found. At the same time purge proxies that are no longer
IVMModelProxy proxy = null; IVMModelProxy proxy = null;
@ -704,7 +706,7 @@ public class AbstractCachingVMProvider extends AbstractVMProvider implements ICa
rm.done(); rm.done();
} else { } else {
service.getModelData(dmc, service.getModelData(dmc,
new DataRequestMonitor<IDMData>(executor, rm) { new ViewerDataRequestMonitor<IDMData>(executor, update) {
@Override @Override
protected void handleCompleted() { protected void handleCompleted() {
if (isSuccess()) { if (isSuccess()) {

View file

@ -15,7 +15,6 @@ import java.util.concurrent.RejectedExecutionException;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.dd.dsf.concurrent.ConfinedToDsfExecutor; 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.DsfRunnable;
import org.eclipse.dd.dsf.concurrent.ImmediateExecutor; import org.eclipse.dd.dsf.concurrent.ImmediateExecutor;
import org.eclipse.dd.dsf.concurrent.RequestMonitor; 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.IResumedDMEvent;
import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.ISuspendedDMEvent;
import org.eclipse.dd.dsf.service.DsfSession; 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.AbstractVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.IVMAdapter;
import org.eclipse.dd.dsf.ui.viewmodel.IVMNode; import org.eclipse.dd.dsf.ui.viewmodel.IVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.VMDelta; 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.AbstractDMVMNode;
@ -199,7 +198,7 @@ public class PDAProgramVMNode extends AbstractDMVMNode
// Retrieve the last state change reason // Retrieve the last state change reason
runControl.getExecutionData( runControl.getExecutionData(
programCtx, programCtx,
new DataRequestMonitor<IExecutionDMData>(ImmediateExecutor.getInstance(), null) new ViewerDataRequestMonitor<IExecutionDMData>(ImmediateExecutor.getInstance(), update)
{ {
@Override @Override
public void handleCompleted(){ public void handleCompleted(){

View file

@ -14,7 +14,6 @@ package org.eclipse.dd.gdb.internal.ui.viewmodel.launch;
import java.util.concurrent.RejectedExecutionException; 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.DsfRunnable;
import org.eclipse.dd.dsf.concurrent.RequestMonitor; import org.eclipse.dd.dsf.concurrent.RequestMonitor;
import org.eclipse.dd.dsf.datamodel.DMContexts; 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.IExitedDMEvent;
import org.eclipse.dd.dsf.debug.service.IRunControl.IStartedDMEvent; import org.eclipse.dd.dsf.debug.service.IRunControl.IStartedDMEvent;
import org.eclipse.dd.dsf.service.DsfSession; 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.VMDelta;
import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMNode;
import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider; import org.eclipse.dd.dsf.ui.viewmodel.datamodel.AbstractDMVMProvider;
@ -102,7 +102,7 @@ public class ContainerVMNode extends AbstractDMVMNode
runControl.getProcessData( runControl.getProcessData(
dmc, dmc,
new DataRequestMonitor<GDBProcessData>(getExecutor(), null) { new ViewerDataRequestMonitor<GDBProcessData>(getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {

View file

@ -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.debug.service.IRunControl.StateChangeReason;
import org.eclipse.dd.dsf.internal.ui.DsfUIPlugin; import org.eclipse.dd.dsf.internal.ui.DsfUIPlugin;
import org.eclipse.dd.dsf.service.DsfSession; 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.IVMContext;
import org.eclipse.dd.dsf.ui.viewmodel.ModelProxyInstalledEvent; import org.eclipse.dd.dsf.ui.viewmodel.ModelProxyInstalledEvent;
import org.eclipse.dd.dsf.ui.viewmodel.VMChildrenUpdate; import org.eclipse.dd.dsf.ui.viewmodel.VMChildrenUpdate;
@ -74,7 +75,7 @@ public class ThreadVMNode extends AbstractDMVMNode
} }
runControl.getExecutionContexts(contDmc, runControl.getExecutionContexts(contDmc,
new DataRequestMonitor<IExecutionDMContext[]>(getSession().getExecutor(), null){ new ViewerDataRequestMonitor<IExecutionDMContext[]>(getSession().getExecutor(), update){
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {
@ -217,7 +218,7 @@ public class ThreadVMNode extends AbstractDMVMNode
// Find the Reason for the State // Find the Reason for the State
runControl.getExecutionData(dmc, runControl.getExecutionData(dmc,
new DataRequestMonitor<IExecutionDMData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<IExecutionDMData>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted(){ public void handleCompleted(){
if (!isSuccess()) { if (!isSuccess()) {
@ -238,7 +239,7 @@ public class ThreadVMNode extends AbstractDMVMNode
// Retrieve the rest of the thread information // Retrieve the rest of the thread information
runControl.getThreadData( runControl.getThreadData(
dmc, dmc,
new DataRequestMonitor<GDBThreadData>(getSession().getExecutor(), null) { new ViewerDataRequestMonitor<GDBThreadData>(getSession().getExecutor(), update) {
@Override @Override
public void handleCompleted() { public void handleCompleted() {
if (!isSuccess()) { if (!isSuccess()) {