diff options
Diffstat (limited to 'lldb/source/Host/common/MainLoop.cpp')
| -rw-r--r-- | lldb/source/Host/common/MainLoop.cpp | 8 |
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(); } |
