diff options
author | Marc Khouzam | 2011-05-13 14:29:18 +0000 |
---|---|---|
committer | Marc Khouzam | 2011-05-13 14:29:18 +0000 |
commit | e2e514ace6c517e57c5c2bd9cfb4efb4e836607f (patch) | |
tree | ba90c754663efaa004a9400e7489359886de984c | |
parent | 624a55093f188f01321eb2151923799cb4489d9f (diff) | |
download | org.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.
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(); } }; |