aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Host/common/MainLoop.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Host/common/MainLoop.cpp')
-rw-r--r--lldb/source/Host/common/MainLoop.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/lldb/source/Host/common/MainLoop.cpp b/lldb/source/Host/common/MainLoop.cpp
index d36587ce2346..8e384c9266b6 100644
--- a/lldb/source/Host/common/MainLoop.cpp
+++ b/lldb/source/Host/common/MainLoop.cpp
@@ -347,6 +347,10 @@ MainLoop::RegisterSignal(int signo, const Callback &callback, Status &error) {
#endif
}
+void MainLoop::AddPendingCallback(const Callback &callback) {
+ m_pending_callbacks.push_back(callback);
+}
+
void MainLoop::UnregisterReadObject(IOObject::WaitableHandle handle) {
bool erased = m_read_fds.erase(handle);
UNUSED_IF_ASSERT_DISABLED(erased);
@@ -401,6 +405,10 @@ Status MainLoop::Run() {
return error;
impl.ProcessEvents();
+
+ for (const Callback &callback : m_pending_callbacks)
+ callback(*this);
+ m_pending_callbacks.clear();
}
return Status();
}