forked from OSchip/llvm-project
The thread plans run before the event is broadcast, so they should be calling ShouldStopSynchronous on any Stop Info's
they want to check. The full ShouldStop should only be called on the public side of the event system. llvm-svn: 175922
This commit is contained in:
parent
19457e282e
commit
9b620f341a
|
@ -569,7 +569,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool
|
virtual bool
|
||||||
ShouldStop (Event *event_ptr)
|
ShouldStopSynchronous (Event *event_ptr)
|
||||||
{
|
{
|
||||||
// ShouldStop() method is idempotent and should not affect hit count.
|
// ShouldStop() method is idempotent and should not affect hit count.
|
||||||
// See Process::RunPrivateStateThread()->Process()->HandlePrivateEvent()
|
// See Process::RunPrivateStateThread()->Process()->HandlePrivateEvent()
|
||||||
|
@ -604,6 +604,15 @@ protected:
|
||||||
return m_should_stop;
|
return m_should_stop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
ShouldStop (Event *event_ptr)
|
||||||
|
{
|
||||||
|
// This just reports the work done by PerformAction or the synchronous stop. It should
|
||||||
|
// only ever get called after they have had a chance to run.
|
||||||
|
assert (m_should_stop_is_valid);
|
||||||
|
return m_should_stop;
|
||||||
|
}
|
||||||
|
|
||||||
virtual void
|
virtual void
|
||||||
PerformAction (Event *event_ptr)
|
PerformAction (Event *event_ptr)
|
||||||
{
|
{
|
||||||
|
@ -759,6 +768,8 @@ protected:
|
||||||
if (log)
|
if (log)
|
||||||
log->Printf ("Process::%s returning from action with m_should_stop: %d.", __FUNCTION__, m_should_stop);
|
log->Printf ("Process::%s returning from action with m_should_stop: %d.", __FUNCTION__, m_should_stop);
|
||||||
|
|
||||||
|
m_should_stop_is_valid = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -101,7 +101,7 @@ ThreadPlanBase::ShouldStop (Event *event_ptr)
|
||||||
|
|
||||||
case eStopReasonBreakpoint:
|
case eStopReasonBreakpoint:
|
||||||
case eStopReasonWatchpoint:
|
case eStopReasonWatchpoint:
|
||||||
if (stop_info_sp->ShouldStop(event_ptr))
|
if (stop_info_sp->ShouldStopSynchronous(event_ptr))
|
||||||
{
|
{
|
||||||
// If we are going to stop for a breakpoint, then unship the other plans
|
// If we are going to stop for a breakpoint, then unship the other plans
|
||||||
// at this point. Don't force the discard, however, so Master plans can stay
|
// at this point. Don't force the discard, however, so Master plans can stay
|
||||||
|
|
Loading…
Reference in New Issue