proxygen
folly::detail::LifoSemRawNode< Atom > Struct Template Reference

#include <LifoSem.h>

Inheritance diagram for folly::detail::LifoSemRawNode< Atom >:
folly::detail::LifoSemNode< Handoff, Atom >

Public Types

typedef folly::IndexedMemPool< LifoSemRawNode< Atom >, 32, 200, AtomPool
 

Public Member Functions

bool isShutdownNotice () const
 
void clearShutdownNotice ()
 
void setShutdownNotice ()
 

Static Public Member Functions

static Poolpool ()
 Storage for all of the waiter nodes for LifoSem-s that use Atom. More...
 

Public Attributes

std::aligned_storage< sizeof(void *), alignof(void *)>::type raw
 
uint32_t next
 

Detailed Description

template<template< typename > class Atom>
struct folly::detail::LifoSemRawNode< Atom >

LifoSemRawNode is the actual pooled storage that backs LifoSemNode for user-specified Handoff types. This is done so that we can have a large static IndexedMemPool of nodes, instead of per-type pools

Definition at line 123 of file LifoSem.h.

Member Typedef Documentation

template<template< typename > class Atom>
typedef folly::IndexedMemPool<LifoSemRawNode<Atom>, 32, 200, Atom> folly::detail::LifoSemRawNode< Atom >::Pool

Definition at line 141 of file LifoSem.h.

Member Function Documentation

template<template< typename > class Atom>
void folly::detail::LifoSemRawNode< Atom >::clearShutdownNotice ( )
inline

Definition at line 134 of file LifoSem.h.

134  {
135  next = 0;
136  }
template<template< typename > class Atom>
bool folly::detail::LifoSemRawNode< Atom >::isShutdownNotice ( ) const
inline

Definition at line 131 of file LifoSem.h.

References uint32_t.

131  {
132  return next == uint32_t(-1);
133  }
template<template< typename > class Atom>
void folly::detail::LifoSemRawNode< Atom >::setShutdownNotice ( )
inline

Definition at line 137 of file LifoSem.h.

References uint32_t.

137  {
138  next = uint32_t(-1);
139  }

Member Data Documentation

template<template< typename > class Atom>
uint32_t folly::detail::LifoSemRawNode< Atom >::next

The IndexedMemPool index of the next node in this chain, or 0 if none. This will be set to uint32_t(-1) if the node is being posted due to a shutdown-induced wakeup

Definition at line 129 of file LifoSem.h.

Referenced by folly::detail::LifoSemBase< BatonType, Atom >::tryRemoveNode().

template<template< typename > class Atom>
std::aligned_storage<sizeof(void*), alignof(void*)>::type folly::detail::LifoSemRawNode< Atom >::raw

Definition at line 124 of file LifoSem.h.


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