Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Khouzam2011-05-13 14:29:18 +0000
committerMarc Khouzam2011-05-13 14:29:18 +0000
commite2e514ace6c517e57c5c2bd9cfb4efb4e836607f (patch)
treeba90c754663efaa004a9400e7489359886de984c
parent624a55093f188f01321eb2151923799cb4489d9f (diff)
downloadorg.eclipse.cdt-e2e514ace6c517e57c5c2bd9cfb4efb4e836607f.tar.gz
org.eclipse.cdt-e2e514ace6c517e57c5c2bd9cfb4efb4e836607f.tar.xz
org.eclipse.cdt-e2e514ace6c517e57c5c2bd9cfb4efb4e836607f.zip
Bug 343862: Infinite assertions when an error happens when setting breakpoints. Need to complete the requestMonitor of cancelled operations.
-rw-r--r--dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java8
-rw-r--r--dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java9
2 files changed, 15 insertions, 2 deletions
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java
index c4941601740..40b96c68b6c 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java
@@ -1153,7 +1153,13 @@ public class GDBRunControl_7_0_NS extends AbstractDsfService implements IMIRunCo
// If we don't, we risk an infinite loop where we try, over and over
// to perform an operation that keeps on failing.
fOngoingOperation = false;
- fOperationsPending.clear();
+
+ // Complete each rm of the cancelled operations
+ while (fOperationsPending.size() > 0) {
+ RequestMonitor rm = fOperationsPending.poll().rm;
+ rm.setStatus(getStatus());
+ rm.done();
+ }
super.handleFailure();
}
};
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java
index cff1b912c76..05784080df2 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIRunControl.java
@@ -1156,7 +1156,14 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
// If we don't, we risk an infinite loop where we try, over and over
// to perform an operation that keeps on failing.
fOngoingOperation = false;
- fOperationsPending.clear();
+
+ // Complete each rm of the cancelled operations
+ while (fOperationsPending.size() > 0) {
+ RequestMonitor rm = fOperationsPending.poll().rm;
+ rm.setStatus(getStatus());
+ rm.done();
+ }
+
super.handleFailure();
}
};

Back to the top