LLDB mainline
lldb::SBMutex::MutexVariant Class Reference

Holds either a standalone std::recursive_mutex (default-constructed SBMutex, no Target to resolve through) or a TargetAPIMutex (constructed from a Target). More...

Public Member Functions

 MutexVariant ()
 MutexVariant (lldb::TargetSP target_sp)
void lock ()
void unlock ()
bool try_lock ()

Private Attributes

std::variant< std::recursive_mutex, TargetAPIMutexm_variant

Detailed Description

Holds either a standalone std::recursive_mutex (default-constructed SBMutex, no Target to resolve through) or a TargetAPIMutex (constructed from a Target).

Kept out of SBMutex.h since std::variant is a C++17 feature and the public SB headers must stay usable from a C++11 client.

Definition at line 24 of file SBMutex.cpp.

Constructor & Destructor Documentation

◆ MutexVariant() [1/2]

lldb::SBMutex::MutexVariant::MutexVariant ( )
inline

Definition at line 26 of file SBMutex.cpp.

References m_variant.

◆ MutexVariant() [2/2]

lldb::SBMutex::MutexVariant::MutexVariant ( lldb::TargetSP target_sp)
inlineexplicit

Definition at line 27 of file SBMutex.cpp.

References m_variant.

Member Function Documentation

◆ lock()

void lldb::SBMutex::MutexVariant::lock ( )
inline

Definition at line 30 of file SBMutex.cpp.

References m_variant.

◆ try_lock()

bool lldb::SBMutex::MutexVariant::try_lock ( )
inline

Definition at line 36 of file SBMutex.cpp.

References m_variant.

◆ unlock()

void lldb::SBMutex::MutexVariant::unlock ( )
inline

Definition at line 33 of file SBMutex.cpp.

References m_variant.

Member Data Documentation

◆ m_variant

std::variant<std::recursive_mutex, TargetAPIMutex> lldb::SBMutex::MutexVariant::m_variant
private

Definition at line 41 of file SBMutex.cpp.

Referenced by lock(), MutexVariant(), MutexVariant(), try_lock(), and unlock().


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