mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-09 09:15:38 +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
|
// another request that we now need to process
|
||||||
RequestMonitor sequenceCompletedRm = new RequestMonitor(getExecutor(), null) {
|
RequestMonitor sequenceCompletedRm = new RequestMonitor(getExecutor(), null) {
|
||||||
@Override
|
@Override
|
||||||
protected void handleCompleted() {
|
protected void handleSuccess() {
|
||||||
fOngoingOperation = false;
|
fOngoingOperation = false;
|
||||||
|
|
||||||
if (fOperationsPending.size() > 0) {
|
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
|
// 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) {
|
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
|
// another request that we now need to process
|
||||||
RequestMonitor sequenceCompletedRm = new RequestMonitor(getExecutor(), null) {
|
RequestMonitor sequenceCompletedRm = new RequestMonitor(getExecutor(), null) {
|
||||||
@Override
|
@Override
|
||||||
protected void handleCompleted() {
|
protected void handleSuccess() {
|
||||||
fOngoingOperation = false;
|
fOngoingOperation = false;
|
||||||
|
|
||||||
if (fOperationsPending.size() > 0) {
|
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
|
// 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) {
|
getExecutor().execute(new Sequence(getExecutor(), sequenceCompletedRm) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue