proxygen
folly::detail::distributed_mutex::Waiter< Atomic > Class Template Reference

#include <DistributedMutex-inl.h>

Public Member Functions

 Waiter (std::uint64_t futex)
 

Public Attributes

Atomic< std::uint64_tfutex_ {kUninitialized}
 
WakerMetadata wakerMetadata_ {}
 
std::uintptr_t next_ {0}
 
std::uintptr_t waiters_ {0}
 
Futex< Atomic > sleeper_ {kUninitialized}
 

Detailed Description

template<template< typename > class Atomic>
class folly::detail::distributed_mutex::Waiter< Atomic >

Waiter encapsulates the state required for waiting on the mutex, this contains potentially heavy state and is intended to be allocated on the stack as part of a lock() function call

Definition at line 153 of file DistributedMutex-inl.h.

Constructor & Destructor Documentation

template<template< typename > class Atomic>
folly::detail::distributed_mutex::Waiter< Atomic >::Waiter ( std::uint64_t  futex)
inlineexplicit

Definition at line 155 of file DistributedMutex-inl.h.

155 : futex_{futex} {}

Member Data Documentation

template<template< typename > class Atomic>
Atomic<std::uint64_t> folly::detail::distributed_mutex::Waiter< Atomic >::futex_ {kUninitialized}

Definition at line 159 of file DistributedMutex-inl.h.

Referenced by folly::detail::distributed_mutex::spin().

template<template< typename > class Atomic>
std::uintptr_t folly::detail::distributed_mutex::Waiter< Atomic >::next_ {0}

Definition at line 164 of file DistributedMutex-inl.h.

template<template< typename > class Atomic>
Futex<Atomic> folly::detail::distributed_mutex::Waiter< Atomic >::sleeper_ {kUninitialized}

Definition at line 177 of file DistributedMutex-inl.h.

template<template< typename > class Atomic>
std::uintptr_t folly::detail::distributed_mutex::Waiter< Atomic >::waiters_ {0}

Definition at line 173 of file DistributedMutex-inl.h.

template<template< typename > class Atomic>
WakerMetadata folly::detail::distributed_mutex::Waiter< Atomic >::wakerMetadata_ {}

Definition at line 161 of file DistributedMutex-inl.h.


The documentation for this class was generated from the following file: