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:
parent
c1a81dbd68
commit
624a55093f
2 changed files with 20 additions and 2 deletions
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue