LLDB mainline
lldb_private::MainLoopPosix Class Reference

#include <MainLoopPosix.h>

Inheritance diagram for lldb_private::MainLoopPosix:
[legend]

Classes

class  RunImpl
class  SignalHandle
struct  SignalInfo

Public Types

typedef std::unique_ptr< SignalHandleSignalHandleUP
Public Types inherited from lldb_private::MainLoopBase
using TimePoint
typedef std::unique_ptr< ReadHandleReadHandleUP
typedef std::function< void(MainLoopBase &)> Callback

Public Member Functions

 MainLoopPosix ()
 ~MainLoopPosix () override
ReadHandleUP RegisterReadObject (const lldb::IOObjectSP &object_sp, const Callback &callback, Status &error) override
SignalHandleUP RegisterSignal (int signo, const Callback &callback, Status &error)
Status Run () override
Public Member Functions inherited from lldb_private::MainLoopBase
 MainLoopBase ()
virtual ~MainLoopBase ()=default
void AddPendingCallback (const Callback &callback)
void AddCallback (const Callback &callback, std::chrono::nanoseconds delay)
void AddCallback (const Callback &callback, TimePoint point)
virtual void RequestTermination ()

Protected Member Functions

void UnregisterReadObject (IOObject::WaitableHandle handle) override
void UnregisterSignal (int signo, std::list< Callback >::iterator callback_it)
void Interrupt () override
Protected Member Functions inherited from lldb_private::MainLoopBase
ReadHandleUP CreateReadHandle (const lldb::IOObjectSP &object_sp)
void ProcessCallbacks ()
std::optional< TimePointGetNextWakeupTime ()

Private Member Functions

void ProcessReadObject (IOObject::WaitableHandle handle)
void ProcessSignal (int signo)
void ProcessSignals ()

Private Attributes

llvm::DenseMap< IOObject::WaitableHandle, Callbackm_read_fds
llvm::DenseMap< int, SignalInfom_signals
Pipe m_interrupt_pipe
std::atomic< boolm_interrupting = false

Additional Inherited Members

Protected Attributes inherited from lldb_private::MainLoopBase
std::mutex m_callback_mutex
std::priority_queue< std::pair< TimePoint, Callback >, std::vector< std::pair< TimePoint, Callback > >, llvm::on_first< std::greater< TimePoint > > > m_callbacks
bool m_terminate_request: 1

Detailed Description

Definition at line 27 of file MainLoopPosix.h.

Member Typedef Documentation

◆ SignalHandleUP

Definition at line 32 of file MainLoopPosix.h.

Constructor & Destructor Documentation

◆ MainLoopPosix()

◆ ~MainLoopPosix()

MainLoopPosix::~MainLoopPosix ( )
override

Definition at line 238 of file MainLoopPosix.cpp.

References m_interrupt_pipe, m_read_fds, and m_signals.

Member Function Documentation

◆ Interrupt()

void MainLoopPosix::Interrupt ( )
overrideprotectedvirtual

Implements lldb_private::MainLoopBase.

Definition at line 390 of file MainLoopPosix.cpp.

References m_interrupt_pipe, and m_interrupting.

◆ ProcessReadObject()

void MainLoopPosix::ProcessReadObject ( IOObject::WaitableHandle handle)
private

Definition at line 357 of file MainLoopPosix.cpp.

References m_read_fds.

◆ ProcessSignal()

void MainLoopPosix::ProcessSignal ( int signo)
private

Definition at line 378 of file MainLoopPosix.cpp.

References m_signals.

Referenced by ProcessSignals().

◆ ProcessSignals()

void MainLoopPosix::ProcessSignals ( )
private

◆ RegisterReadObject()

◆ RegisterSignal()

◆ Run()

◆ UnregisterReadObject()

void MainLoopPosix::UnregisterReadObject ( IOObject::WaitableHandle handle)
overrideprotectedvirtual

Implements lldb_private::MainLoopBase.

Definition at line 306 of file MainLoopPosix.cpp.

References m_read_fds, and UNUSED_IF_ASSERT_DISABLED.

◆ UnregisterSignal()

void MainLoopPosix::UnregisterSignal ( int signo,
std::list< Callback >::iterator callback_it )
protected

Definition at line 312 of file MainLoopPosix.cpp.

References g_signal_info, m_signals, and UNUSED_IF_ASSERT_DISABLED.

Member Data Documentation

◆ m_interrupt_pipe

Pipe lldb_private::MainLoopPosix::m_interrupt_pipe
private

Definition at line 91 of file MainLoopPosix.h.

Referenced by Interrupt(), MainLoopPosix(), RegisterSignal(), and ~MainLoopPosix().

◆ m_interrupting

std::atomic<bool> lldb_private::MainLoopPosix::m_interrupting = false
private

Definition at line 92 of file MainLoopPosix.h.

Referenced by Interrupt(), and Run().

◆ m_read_fds

llvm::DenseMap<IOObject::WaitableHandle, Callback> lldb_private::MainLoopPosix::m_read_fds
private

◆ m_signals

llvm::DenseMap<int, SignalInfo> lldb_private::MainLoopPosix::m_signals
private

The documentation for this class was generated from the following files: