From 9b620f341a4810a1538706c73887f3cd913022ea Mon Sep 17 00:00:00 2001 From: Jim Ingham Date: Fri, 22 Feb 2013 21:23:43 +0000 Subject: 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 --- lldb/source/Target/StopInfo.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'lldb/source/Target/StopInfo.cpp') diff --git a/lldb/source/Target/StopInfo.cpp b/lldb/source/Target/StopInfo.cpp index 3500a88f2fe..322d05ed181 100644 --- a/lldb/source/Target/StopInfo.cpp +++ b/lldb/source/Target/StopInfo.cpp @@ -569,7 +569,7 @@ public: protected: virtual bool - ShouldStop (Event *event_ptr) + ShouldStopSynchronous (Event *event_ptr) { // ShouldStop() method is idempotent and should not affect hit count. // See Process::RunPrivateStateThread()->Process()->HandlePrivateEvent() @@ -604,6 +604,15 @@ protected: 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 PerformAction (Event *event_ptr) { @@ -759,6 +768,8 @@ protected: if (log) log->Printf ("Process::%s returning from action with m_should_stop: %d.", __FUNCTION__, m_should_stop); + m_should_stop_is_valid = true; + } private: -- cgit v1.2.1