43  using TimePoint = std::chrono::time_point<std::chrono::steady_clock,
 
   44                                            std::chrono::nanoseconds>;
 
   65    return AddCallback(callback, std::chrono::steady_clock::time_point());
 
 
   71    return AddCallback(callback, std::chrono::steady_clock::now() + delay);
 
 
   76  bool AddCallback(
const Callback &callback, TimePoint point);
 
   80  virtual Status Run() { llvm_unreachable(
"Not implemented"); }
 
  102  std::priority_queue<std::pair<TimePoint, Callback>,
 
  103                      std::vector<std::pair<TimePoint, Callback>>,
 
  104                      llvm::on_first<std::greater<TimePoint>>>
 
 
MainLoopBase & m_mainloop
friend class MainLoopBase
IOObject::WaitableHandle m_handle
ReadHandle(const ReadHandle &)=delete
ReadHandle(MainLoopBase &mainloop, IOObject::WaitableHandle handle)
const ReadHandle & operator=(const ReadHandle &)=delete
std::unique_ptr< ReadHandle > ReadHandleUP
virtual void UnregisterReadObject(IOObject::WaitableHandle handle)=0
const MainLoopBase & operator=(const MainLoopBase &)=delete
std::priority_queue< std::pair< TimePoint, Callback >, std::vector< std::pair< TimePoint, Callback > >, llvm::on_first< std::greater< TimePoint > > > m_callbacks
std::chrono::time_point< std::chrono::steady_clock, std::chrono::nanoseconds > TimePoint
std::optional< TimePoint > GetNextWakeupTime()
virtual ReadHandleUP RegisterReadObject(const lldb::IOObjectSP &object_sp, const Callback &callback, Status &error)=0
ReadHandleUP CreateReadHandle(const lldb::IOObjectSP &object_sp)
bool AddPendingCallback(const Callback &callback)
virtual ~MainLoopBase()=default
MainLoopBase(const MainLoopBase &)=delete
std::function< void(MainLoopBase &)> Callback
std::mutex m_callback_mutex
virtual bool Interrupt()=0
Interrupt the loop that is currently waiting for events.
virtual void RequestTermination()
bool AddCallback(const Callback &callback, std::chrono::nanoseconds delay)