virtual void RequestTermination()
MainLoopBase & m_mainloop
virtual void TriggerPendingCallbacks()=0
virtual void UnregisterReadObject(IOObject::WaitableHandle handle)=0
IOObject::WaitableHandle m_handle
std::unique_ptr< ReadHandle > ReadHandleUP
ReadHandleUP CreateReadHandle(const lldb::IOObjectSP &object_sp)
virtual ~MainLoopBase()=default
virtual ReadHandleUP RegisterReadObject(const lldb::IOObjectSP &object_sp, const Callback &callback, Status &error)=0
const MainLoopBase & operator=(const MainLoopBase &)=delete
std::mutex m_callback_mutex
void AddPendingCallback(const Callback &callback)
std::function< void(MainLoopBase &)> Callback
void ProcessPendingCallbacks()
const ReadHandle & operator=(const ReadHandle &)=delete
std::vector< Callback > m_pending_callbacks
ReadHandle(MainLoopBase &mainloop, IOObject::WaitableHandle handle)