proxygen
folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, true > Struct Template Reference

#include <LockTraits.h>

Inheritance diagram for folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, true >:
folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, false > folly::detail::LockTraitsImpl< Mutex, MutexLevel::UNIQUE, true > folly::detail::LockTraitsImpl< Mutex, MutexLevel::UNIQUE, false > folly::detail::LockTraitsImpl< Mutex, MutexLevel::UNIQUE, false > folly::detail::LockTraitsImpl< Mutex, MutexLevel::UPGRADE, true >

Static Public Member Functions

template<class Rep , class Period >
static bool try_lock_for (Mutex &mutex, const std::chrono::duration< Rep, Period > &timeout)
 
template<class Rep , class Period >
static bool try_lock_shared_for (Mutex &mutex, const std::chrono::duration< Rep, Period > &timeout)
 
- Static Public Member Functions inherited from folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, false >
static void lock_shared (Mutex &mutex)
 
static void unlock_shared (Mutex &mutex)
 
static bool try_lock_shared (Mutex &mutex)
 
- Static Public Member Functions inherited from folly::detail::LockTraitsImpl< Mutex, MutexLevel::UNIQUE, false >
static void lock (Mutex &mutex)
 
static void unlock (Mutex &mutex)
 
static bool try_lock (Mutex &mutex)
 
- Static Public Member Functions inherited from folly::detail::LockTraitsImpl< Mutex, MutexLevel::UNIQUE, true >
template<class Rep , class Period >
static bool try_lock_for (Mutex &mutex, const std::chrono::duration< Rep, Period > &timeout)
 

Static Public Attributes

static constexpr bool is_timed {true}
 
static constexpr bool is_shared {true}
 
static constexpr bool is_upgrade {false}
 
- Static Public Attributes inherited from folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, false >
static constexpr bool is_timed {false}
 
static constexpr bool is_shared {true}
 
static constexpr bool is_upgrade {false}
 
- Static Public Attributes inherited from folly::detail::LockTraitsImpl< Mutex, MutexLevel::UNIQUE, false >
static constexpr bool is_timed {false}
 
static constexpr bool is_shared {false}
 
static constexpr bool is_upgrade {false}
 
- Static Public Attributes inherited from folly::detail::LockTraitsImpl< Mutex, MutexLevel::UNIQUE, true >
static constexpr bool is_timed {true}
 
static constexpr bool is_shared {false}
 
static constexpr bool is_upgrade {false}
 

Detailed Description

template<class Mutex>
struct folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, true >

Note that there is no deadly diamond here because all the structs only have static functions and static bools which are going to be overridden by the lowest level implementation

Definition at line 286 of file LockTraits.h.

Member Function Documentation

template<class Mutex >
template<class Rep , class Period >
static bool folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, true >::try_lock_for ( Mutex mutex,
const std::chrono::duration< Rep, Period > &  timeout 
)
inlinestatic

Acquire the lock exclusively, with a timeout.

Returns true or false indicating if the lock was acquired or not.

Definition at line 299 of file LockTraits.h.

301  {
302  return mutex.try_lock_for(timeout);
303  }
std::mutex mutex
template<class Mutex >
template<class Rep , class Period >
static bool folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, true >::try_lock_shared_for ( Mutex mutex,
const std::chrono::duration< Rep, Period > &  timeout 
)
inlinestatic

Acquire the lock in shared (read) mode, with a timeout.

Returns true or false indicating if the lock was acquired or not.

Definition at line 311 of file LockTraits.h.

313  {
314  return mutex.try_lock_shared_for(timeout);
315  }
std::mutex mutex

Member Data Documentation

template<class Mutex >
constexpr bool folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, true >::is_shared {true}
static

Definition at line 290 of file LockTraits.h.

template<class Mutex >
constexpr bool folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, true >::is_timed {true}
static

Definition at line 289 of file LockTraits.h.

template<class Mutex >
constexpr bool folly::detail::LockTraitsImpl< Mutex, MutexLevel::SHARED, true >::is_upgrade {false}
static

Definition at line 291 of file LockTraits.h.


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