proxygen
LifoSem.h File Reference
#include <algorithm>
#include <atomic>
#include <cstdint>
#include <cstring>
#include <memory>
#include <system_error>
#include <folly/CPortability.h>
#include <folly/CachelinePadded.h>
#include <folly/IndexedMemPool.h>
#include <folly/Likely.h>
#include <folly/lang/SafeAssert.h>
#include <folly/synchronization/AtomicStruct.h>
#include <folly/synchronization/SaturatingSemaphore.h>

Go to the source code of this file.

Classes

struct  folly::LifoSemImpl< Atom, BatonType >
 
struct  folly::ShutdownSemError
 The exception thrown when wait()ing on an isShutdown() LifoSem. More...
 
struct  folly::detail::LifoSemRawNode< Atom >
 
struct  folly::detail::LifoSemNode< Handoff, Atom >
 
struct  folly::detail::LifoSemNodeRecycler< Handoff, Atom >
 
class  folly::detail::LifoSemHead
 
struct  folly::detail::LifoSemBase< Handoff, Atom >
 
struct  folly::LifoSemImpl< Atom, BatonType >
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 
 folly::detail
 

Macros

#define LIFOSEM_DECLARE_POOL(Atom, capacity)
 

Typedefs

typedef LifoSemImpl folly::LifoSem
 

Macro Definition Documentation

#define LIFOSEM_DECLARE_POOL (   Atom,
  capacity 
)
Value:
namespace folly { \
namespace detail { \
template <> \
LifoSemRawNode<Atom>::Pool& LifoSemRawNode<Atom>::pool() { \
static Pool* instance = new Pool((capacity)); \
return *instance; \
} \
} \
}
—— Concurrent Priority Queue Implementation ——
Definition: AtomicBitSet.h:29
static Pool & pool()
Storage for all of the waiter nodes for LifoSem-s that use Atom.

Use this macro to declare the static storage that backs the raw nodes for the specified atomic type

Definition at line 149 of file LifoSem.h.