proxygen
|
#include <DistributedMutex-inl.h>
Public Member Functions | |
DistributedMutexStateProxy (DistributedMutexStateProxy &&other) | |
operator bool () const | |
DistributedMutexStateProxy (CachelinePadded< Waiter< Atomic >> *next, std::uintptr_t expected, bool timedWaiter=false, WakerMetadata wakerMetadata={}, CachelinePadded< Waiter< Atomic >> *waiters=nullptr, CachelinePadded< Waiter< Atomic >> *ready=nullptr) | |
Public Attributes | |
CachelinePadded< Waiter< Atomic > > * | next_ {nullptr} |
std::uintptr_t | expected_ {0} |
bool | timedWaiters_ {false} |
WakerMetadata | wakerMetadata_ {} |
CachelinePadded< Waiter< Atomic > > * | waiters_ {nullptr} |
CachelinePadded< Waiter< Atomic > > * | ready_ {nullptr} |
Friends | |
class | DistributedMutex< Atomic, TimePublishing > |
Definition at line 229 of file DistributedMutex-inl.h.
|
inline |
DistributedMutexStateProxy is movable, so the caller can contain their critical section by moving the proxy around
Definition at line 233 of file DistributedMutex-inl.h.
References folly::exchange().
|
inline |
Definition at line 251 of file DistributedMutex-inl.h.
References cpp.ast::next().
|
inlineexplicit |
The proxy is valid when a mutex acquisition attempt was successful, lock() is guaranteed to return a valid proxy, try_lock() is not
Definition at line 242 of file DistributedMutex-inl.h.
|
friend |
friend the mutex class, since that will be accessing state private to this class
Definition at line 249 of file DistributedMutex-inl.h.
std::uintptr_t folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::DistributedMutexStateProxy< Atomic, TimePublishing >::expected_ {0} |
Definition at line 281 of file DistributedMutex-inl.h.
Referenced by folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::unlock().
CachelinePadded<Waiter<Atomic> >* folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::DistributedMutexStateProxy< Atomic, TimePublishing >::next_ {nullptr} |
Definition at line 268 of file DistributedMutex-inl.h.
Referenced by folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::unlock().
CachelinePadded<Waiter<Atomic> >* folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::DistributedMutexStateProxy< Atomic, TimePublishing >::ready_ {nullptr} |
Definition at line 301 of file DistributedMutex-inl.h.
Referenced by folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::unlock().
bool folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::DistributedMutexStateProxy< Atomic, TimePublishing >::timedWaiters_ {false} |
Definition at line 289 of file DistributedMutex-inl.h.
Referenced by folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::unlock().
CachelinePadded<Waiter<Atomic> >* folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::DistributedMutexStateProxy< Atomic, TimePublishing >::waiters_ {nullptr} |
Definition at line 296 of file DistributedMutex-inl.h.
Referenced by folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::unlock().
WakerMetadata folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::DistributedMutexStateProxy< Atomic, TimePublishing >::wakerMetadata_ {} |
Definition at line 291 of file DistributedMutex-inl.h.
Referenced by folly::detail::distributed_mutex::DistributedMutex< Atomic, TimePublishing >::unlock().