51 template <
typename Rep,
typename Period>
52 bool timed_lock(
const std::chrono::duration<Rep, Period>& duration);
63 template <
typename WaitFunc>
91 template <
typename BatonType>
108 template <
typename Rep,
typename Period>
109 bool timed_read_lock(
const std::chrono::duration<Rep, Period>& duration);
114 bool try_read_lock();
122 template <
typename Rep,
typename Period>
123 bool timed_write_lock(
const std::chrono::duration<Rep, Period>& duration);
128 bool try_write_lock();
189 assert(readers_ == 0);
190 assert(read_waiters_.empty());
191 assert(write_waiters_.empty());
209 typedef boost::intrusive::
210 member_hook<MutexWaiter, MutexWaiterHookType, &MutexWaiter::hook>
216 boost::intrusive::constant_time_size<true>>
void verify_unlocked_properties()
MutexWaiterList read_waiters_
boost::intrusive::list< MutexWaiter, MutexWaiterHook, boost::intrusive::constant_time_size< true > > MutexWaiterList
MutexWaiterList fiberWaiters_
folly::IntrusiveListHook hook
MutexWaiterList write_waiters_
boost::intrusive::list_member_hook MutexWaiterHookType
folly::IntrusiveList< MutexWaiter,&MutexWaiter::hook > MutexWaiterList
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
FOLLY_ALWAYS_INLINE void unlock() const noexcept
FOLLY_PUSH_WARNING RHS rhs
TimedMutex & operator=(const TimedMutex &rhs)=delete
boost::intrusive::list_member_hook< boost::intrusive::link_mode< boost::intrusive::auto_unlink >> IntrusiveListHook
WriteHolder(TimedRWMutex &lock)
boost::intrusive::member_hook< MutexWaiter, MutexWaiterHookType,&MutexWaiter::hook > MutexWaiterHook
Encoder::MutableCompressedList list
LockResult lockHelper(WaitFunc &&waitFunc)
boost::intrusive::list< T, boost::intrusive::member_hook< T, IntrusiveListHook, PtrToMember >, boost::intrusive::constant_time_size< false >> IntrusiveList
MutexWaiterList threadWaiters_
bool timed_lock(const std::chrono::duration< Rep, Period > &duration)
MutexWaiter * notifiedFiber_
ReadHolder(TimedRWMutex &lock)