C/C++ API Reference
Loading...
Searching...
No Matches
pw::sync Namespace Reference

Classes

class  BinarySemaphore
 
class  Borrowable
 
class  BorrowedPointer
 
class  CountingSemaphore
 
class  GenericBasicLockable
 
class  GenericLockable
 
class  InlineBorrowable
 
class  InterruptSpinLock
 
struct  is_basic_lockable
 
struct  is_basic_lockable< Lock, std::void_t< decltype(std::declval< Lock >().lock()), decltype(std::declval< Lock >().unlock())> >
 
struct  is_lockable
 
struct  is_lockable< Lock, std::void_t< decltype(std::declval< Lock >().try_lock())> >
 
struct  is_lockable_for
 
struct  is_lockable_for< Lock, Duration, std::void_t< decltype(std::declval< Lock >().try_lock_for(std::declval< Duration >()))> >
 
struct  is_lockable_until
 
struct  is_lockable_until< Lock, TimePoint, std::void_t< decltype(std::declval< Lock >().try_lock_until(std::declval< TimePoint >()))> >
 
struct  is_timed_lockable
 
class  Mutex
 
class  NoLock
 
class  NoOpLock
 
class  ThreadNotification
 
class  TimedBorrowable
 
class  TimedMutex
 
class  TimedThreadNotification
 
class  VirtualBasicLockable
 
class  VirtualInterruptSpinLock
 
class  VirtualMutex
 
class  VirtualTimedMutex
 

Typedefs

template<bool kEnableLocking, typename LockType >
using MaybeLock = std::conditional_t< kEnableLocking, LockType, NoLock >
 

Variables

template<typename Lock >
constexpr bool is_basic_lockable_v = is_basic_lockable<Lock>::value
 Helper variable template for is_basic_lockable<Lock>::value.
 
template<typename Lock >
constexpr bool is_lockable_v = is_lockable<Lock>::value
 Helper variable template for is_lockable<Lock>::value.
 
template<typename Lock , typename Duration >
constexpr bool is_lockable_for_v
 Helper variable template for is_lockable_for<Lock, Duration>::value.
 
template<typename Lock , typename TimePoint >
constexpr bool is_lockable_until_v
 Helper variable template for is_lockable_until<Lock, TimePoint>::value.
 
template<typename Lock , typename Clock >
constexpr bool is_timed_lockable_v
 Helper variable template for is_timed_lockable<Lock, Clock>::value.
 

Detailed Description

This file provide trait types that can be used to check C++ lock-related named requirements: BasicLockable, Lockable, and TimedLockable.