diff options
-rw-r--r-- | lldb/include/lldb/Target/Process.h | 5 | ||||
-rw-r--r-- | lldb/source/Target/Process.cpp | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h index 908438c3f35..737304d86ca 100644 --- a/lldb/include/lldb/Target/Process.h +++ b/lldb/include/lldb/Target/Process.h @@ -2608,6 +2608,8 @@ public: bool RunPreResumeActions(); void ClearPreResumeActions(); + + void ClearPreResumeAction(PreResumeActionCallback callback, void *baton); ProcessRunLock &GetRunLock(); @@ -2942,6 +2944,9 @@ protected: PreResumeCallbackAndBaton(PreResumeActionCallback in_callback, void *in_baton) : callback(in_callback), baton(in_baton) {} + bool operator== (const PreResumeCallbackAndBaton &rhs) { + return callback == rhs.callback && baton == rhs.baton; + } }; using StructuredDataPluginMap = diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index b539ea3a2ee..a87ab4db1f5 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -5860,6 +5860,16 @@ bool Process::RunPreResumeActions() { void Process::ClearPreResumeActions() { m_pre_resume_actions.clear(); } +void Process::ClearPreResumeAction(PreResumeActionCallback callback, void *baton) +{ + PreResumeCallbackAndBaton element(callback, baton); + auto found_iter = std::find(m_pre_resume_actions.begin(), m_pre_resume_actions.end(), element); + if (found_iter != m_pre_resume_actions.end()) + { + m_pre_resume_actions.erase(found_iter); + } +} + ProcessRunLock &Process::GetRunLock() { if (m_private_state_thread.EqualsThread(Host::GetCurrentThread())) return m_private_run_lock; |