1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-01 14:15:23 +02:00

Bug 343862: Infinite assertions when an error happens when setting breakpoints

This commit is contained in:
Marc Khouzam 2011-05-13 11:13:02 +00:00
parent c1a81dbd68
commit 624a55093f
2 changed files with 20 additions and 2 deletions

View file

@ -1136,7 +1136,7 @@ public class GDBRunControl_7_0_NS extends AbstractDsfService implements IMIRunCo
// another request that we now need to process
RequestMonitor sequenceCompletedRm = new RequestMonitor(getExecutor(), null) {
@Override
protected void handleCompleted() {
protected void handleSuccess() {
fOngoingOperation = false;
if (fOperationsPending.size() > 0) {
@ -1147,6 +1147,15 @@ public class GDBRunControl_7_0_NS extends AbstractDsfService implements IMIRunCo
}
// no other rm.done() needs to be called, they have all been handled already
}
@Override
protected void handleFailure() {
// If the sequence failed, we have to give up on the operation(s).
// 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();
super.handleFailure();
}
};
getExecutor().execute(new Sequence(getExecutor(), sequenceCompletedRm) {

View file

@ -1139,7 +1139,7 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
// another request that we now need to process
RequestMonitor sequenceCompletedRm = new RequestMonitor(getExecutor(), null) {
@Override
protected void handleCompleted() {
protected void handleSuccess() {
fOngoingOperation = false;
if (fOperationsPending.size() > 0) {
@ -1150,6 +1150,15 @@ public class MIRunControl extends AbstractDsfService implements IMIRunControl, I
}
// no other rm.done() needs to be called, they have all been handled already
}
@Override
protected void handleFailure() {
// If the sequence failed, we have to give up on the operation(s).
// 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();
super.handleFailure();
}
};
getExecutor().execute(new Sequence(getExecutor(), sequenceCompletedRm) {