template<typename GuardedType, typename LockType = pw::sync::VirtualBasicLockable>
class pw::sync::TimedBorrowable< GuardedType, LockType >
TimedBorrowable extends Borrowable with additional methods to borrow an object guarded by a lock that implements the TimedLockable C++ named requirement.
|
|
constexpr | TimedBorrowable (GuardedType &object, LockType &lock) noexcept |
| |
|
template<typename U > |
| constexpr | TimedBorrowable (const Borrowable< U, LockType > &other) |
| |
| std::optional< BorrowedPointer< GuardedType, LockType > > | try_acquire_for (chrono::SystemClock::duration timeout) const |
| |
| std::optional< BorrowedPointer< GuardedType, LockType > > | try_acquire_until (chrono::SystemClock::time_point deadline) const |
| |
|
constexpr | Borrowable (GuardedType &object, LockType &lock) noexcept |
| |
|
template<typename U > |
| constexpr | Borrowable (const Borrowable< U, LockType > &other) |
| |
|
| Borrowable (const Borrowable &)=default |
| |
|
Borrowable & | operator= (const Borrowable &)=default |
| |
|
| Borrowable (Borrowable &&other)=default |
| |
|
Borrowable & | operator= (Borrowable &&other)=default |
| |
|
BorrowedPointer< GuardedType, LockType > | acquire () const |
| | Blocks indefinitely until the object can be borrowed. Failures are fatal.
|
| |
| template<int &... ExplicitArgumentBarrier, typename T = LockType, typename = std::enable_if_t<is_lockable_v<T>>> |
| std::optional< BorrowedPointer< GuardedType, LockType > > | try_acquire () const |
| |