LLDB mainline
Locked.h File Reference
#include "llvm/Support/RWMutex.h"
#include <cassert>
#include <memory>
#include <mutex>
#include <shared_mutex>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

class  lldb_private::detail::LockedAccessors< Derived, PtrT >
 Common pointer-like accessors shared by Locked and SharedLocked. More...
class  lldb_private::Locked< PtrT, Mutex >
 A move-only RAII handle that pairs a pointer-like value with an exclusive lock on a caller-supplied mutex. More...
class  lldb_private::SharedLocked< PtrT, Mutex >
 A copyable RAII handle that pairs a pointer-like value with a shared (reader) lock on a caller-supplied mutex. More...

Namespaces

namespace  lldb_private
 A class that represents a running process on the host machine.
namespace  lldb_private::detail

Typedefs

template<typename T, typename Mutex = std::recursive_mutex>
using lldb_private::LockedPtr = Locked<T *, Mutex>
 Exclusive (write) access aliases.
template<typename T, typename Mutex = std::recursive_mutex>
using lldb_private::LockedSP = Locked<std::shared_ptr<T>, Mutex>
template<typename T, typename Mutex = std::recursive_mutex>
using lldb_private::LockedUP = Locked<std::unique_ptr<T>, Mutex>
template<typename T, typename Mutex = llvm::sys::RWMutex>
using lldb_private::SharedLockedPtr = SharedLocked<const T *, Mutex>
 Shared (read) access aliases.
template<typename T, typename Mutex = llvm::sys::RWMutex>
using lldb_private::SharedLockedSP = SharedLocked<std::shared_ptr<const T>, Mutex>
template<typename T, typename Mutex = llvm::sys::RWMutex>
using lldb_private::SharedLockedUP = SharedLocked<std::unique_ptr<const T>, Mutex>