summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/include/lldb/Target/Process.h5
-rw-r--r--lldb/source/Target/Process.cpp10
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;
OpenPOWER on IntegriCloud