diff options
Diffstat (limited to 'lldb/source/Target')
-rw-r--r-- | lldb/source/Target/Process.cpp | 6 | ||||
-rw-r--r-- | lldb/source/Target/Thread.cpp | 8 | ||||
-rw-r--r-- | lldb/source/Target/ThreadList.cpp | 8 |
3 files changed, 22 insertions, 0 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 3a9b3605511..4225b807c76 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -4707,6 +4707,12 @@ Process::ClearPreResumeActions () m_pre_resume_actions.clear(); } +void +Process::Flush () +{ + m_thread_list.Flush(); +} + //-------------------------------------------------------------- // class Process::SettingsController //-------------------------------------------------------------- diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp index 5c3c1970146..4513577c9b5 100644 --- a/lldb/source/Target/Thread.cpp +++ b/lldb/source/Target/Thread.cpp @@ -1410,6 +1410,14 @@ Thread::GetUnwinder () } +void +Thread::Flush () +{ + ClearStackFrames (); + m_reg_context_sp.reset(); +} + + #pragma mark "Thread::SettingsController" //-------------------------------------------------------------- // class Thread::SettingsController diff --git a/lldb/source/Target/ThreadList.cpp b/lldb/source/Target/ThreadList.cpp index e1c38664aa5..3152c1560cd 100644 --- a/lldb/source/Target/ThreadList.cpp +++ b/lldb/source/Target/ThreadList.cpp @@ -605,4 +605,12 @@ ThreadList::Update (ThreadList &rhs) } } +void +ThreadList::Flush () +{ + Mutex::Locker locker(m_threads_mutex); + collection::iterator pos, end = m_threads.end(); + for (pos = m_threads.begin(); pos != end; ++pos) + (*pos)->Flush (); +} |