proxygen
UnboundedQueue.h File Reference
#include <atomic>
#include <chrono>
#include <memory>
#include <glog/logging.h>
#include <folly/ConstexprMath.h>
#include <folly/Optional.h>
#include <folly/concurrency/CacheLocality.h>
#include <folly/lang/Align.h>
#include <folly/synchronization/Hazptr.h>
#include <folly/synchronization/SaturatingSemaphore.h>
#include <folly/synchronization/WaitOptions.h>
#include <folly/synchronization/detail/Spin.h>

Go to the source code of this file.

Classes

class  folly::UnboundedQueue< T, SingleProducer, SingleConsumer, MayBlock, LgSegmentSize, LgAlign, Atom >
 
struct  folly::UnboundedQueue< T, SingleProducer, SingleConsumer, MayBlock, LgSegmentSize, LgAlign, Atom >::Consumer
 
struct  folly::UnboundedQueue< T, SingleProducer, SingleConsumer, MayBlock, LgSegmentSize, LgAlign, Atom >::Producer
 
class  folly::UnboundedQueue< T, SingleProducer, SingleConsumer, MayBlock, LgSegmentSize, LgAlign, Atom >::Entry
 
class  folly::UnboundedQueue< T, SingleProducer, SingleConsumer, MayBlock, LgSegmentSize, LgAlign, Atom >::Segment
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 

Typedefs

template<typename T , bool MayBlock, size_t LgSegmentSize = 8, size_t LgAlign = constexpr_log2(hardware_destructive_interference_size), template< typename > class Atom = std::atomic>
using folly::USPSCQueue = UnboundedQueue< T, true, true, MayBlock, LgSegmentSize, LgAlign, Atom >
 
template<typename T , bool MayBlock, size_t LgSegmentSize = 8, size_t LgAlign = constexpr_log2(hardware_destructive_interference_size), template< typename > class Atom = std::atomic>
using folly::UMPSCQueue = UnboundedQueue< T, false, true, MayBlock, LgSegmentSize, LgAlign, Atom >
 
template<typename T , bool MayBlock, size_t LgSegmentSize = 8, size_t LgAlign = constexpr_log2(hardware_destructive_interference_size), template< typename > class Atom = std::atomic>
using folly::USPMCQueue = UnboundedQueue< T, true, false, MayBlock, LgSegmentSize, LgAlign, Atom >
 
template<typename T , bool MayBlock, size_t LgSegmentSize = 8, size_t LgAlign = constexpr_log2(hardware_destructive_interference_size), template< typename > class Atom = std::atomic>
using folly::UMPMCQueue = UnboundedQueue< T, false, false, MayBlock, LgSegmentSize, LgAlign, Atom >