Public Types |
typedef struct MuHowS * | MuHow |
Public Member Functions |
void | AssertHeld () const ASSERT_EXCLUSIVE_LOCK() |
void | AssertNotHeld () const |
void | AssertReaderHeld () const ASSERT_SHARED_LOCK() |
void | Await (const Condition &cond) |
bool | AwaitWithDeadline (const Condition &cond, absl::Time deadline) |
bool | AwaitWithTimeout (const Condition &cond, absl::Duration timeout) |
void | EnableDebugLog (const char *name) |
void | EnableInvariantDebugging (void(*invariant)(void *), void *arg) |
void | ForgetDeadlockInfo () |
void | Lock () EXCLUSIVE_LOCK_FUNCTION() |
void | LockWhen (const Condition &cond) EXCLUSIVE_LOCK_FUNCTION() |
bool | LockWhenWithDeadline (const Condition &cond, absl::Time deadline) EXCLUSIVE_LOCK_FUNCTION() |
bool | LockWhenWithTimeout (const Condition &cond, absl::Duration timeout) EXCLUSIVE_LOCK_FUNCTION() |
| Mutex () |
constexpr | Mutex (absl::ConstInitType) |
void | ReaderLock () SHARED_LOCK_FUNCTION() |
void | ReaderLockWhen (const Condition &cond) SHARED_LOCK_FUNCTION() |
bool | ReaderLockWhenWithDeadline (const Condition &cond, absl::Time deadline) SHARED_LOCK_FUNCTION() |
bool | ReaderLockWhenWithTimeout (const Condition &cond, absl::Duration timeout) SHARED_LOCK_FUNCTION() |
bool | ReaderTryLock () SHARED_TRYLOCK_FUNCTION(true) |
void | ReaderUnlock () UNLOCK_FUNCTION() |
bool | TryLock () EXCLUSIVE_TRYLOCK_FUNCTION(true) |
void | Unlock () UNLOCK_FUNCTION() |
void | WriterLock () EXCLUSIVE_LOCK_FUNCTION() |
void | WriterLockWhen (const Condition &cond) EXCLUSIVE_LOCK_FUNCTION() |
bool | WriterLockWhenWithDeadline (const Condition &cond, absl::Time deadline) EXCLUSIVE_LOCK_FUNCTION() |
bool | WriterLockWhenWithTimeout (const Condition &cond, absl::Duration timeout) EXCLUSIVE_LOCK_FUNCTION() |
bool | WriterTryLock () EXCLUSIVE_TRYLOCK_FUNCTION(true) |
void | WriterUnlock () UNLOCK_FUNCTION() |
| ~Mutex () |
Static Public Member Functions |
static void | InternalAttemptToUseMutexInFatalSignalHandler () |
Private Member Functions |
bool | AwaitCommon (const Condition &cond, synchronization_internal::KernelTimeout t) |
void | Block (base_internal::PerThreadSynch *s) |
void | Fer (base_internal::PerThreadSynch *w) |
void | LockSlow (MuHow how, const Condition *cond, int flags) ABSL_ATTRIBUTE_COLD |
void | LockSlowLoop (SynchWaitParams *waitp, int flags) |
bool | LockSlowWithDeadline (MuHow how, const Condition *cond, synchronization_internal::KernelTimeout t, int flags) |
| Mutex (const volatile Mutex *) |
| Mutex (const Mutex &) |
Mutex & | operator= (const Mutex &) |
void | Trans (MuHow how) |
void | TryRemove (base_internal::PerThreadSynch *s) |
void | UnlockSlow (SynchWaitParams *waitp) ABSL_ATTRIBUTE_COLD |
base_internal::PerThreadSynch * | Wakeup (base_internal::PerThreadSynch *w) |
Static Private Member Functions |
static bool | DecrementSynchSem (Mutex *mu, base_internal::PerThreadSynch *w, synchronization_internal::KernelTimeout t) |
static void | IncrementSynchSem (Mutex *mu, base_internal::PerThreadSynch *w) |
Private Attributes |
std::atomic< intptr_t > | mu_ |
Friends |
class | CondVar |
Definition at line 138 of file mutex.h.