userver: concurrent Namespace Reference
Loading...
Searching...
No Matches
concurrent Namespace Reference

Detailed Description

Locking stuff.

Classes

class  AsyncEventChannel
 
class  AsyncEventSource
 The read-only side of an event channel. Events are delivered to listeners in a strict FIFO order, i.e. only after the event was processed a new event may appear for processing, same listener is never called concurrently. More...
 
class  AsyncEventSubscriberScope
 Manages the subscription to events from an AsyncEventSource. More...
 
class  BackgroundTaskStorage
 
class  BackgroundTaskStorageCore
 
class  ConflatedEventChannel
 A non-blocking version of 'AsyncEventChannel'. More...
 
class  Consumer
 
struct  DefaultQueuePolicy
 The default queue policy for GenericQueue. Custom queue policies must inherit from it. More...
 
class  FunctionId
 
class  GenericQueue
 Queue with single and multi producer/consumer options. More...
 
class  ItemMutex
 
class  LazyValue
 lazy value computation with multiple users More...
 
class  LockedPtr
 Proxy class for locked access to data protected with locking::SharedLock<T> More...
 
class  MpscQueue
 
class  MutexSet
 A dynamic set of mutexes. More...
 
class  Producer
 
class  StripedCounter
 A contention-free sharded atomic counter, with memory consumption and read performance traded for write performance. Intended to be used for write-heavy counters, mostly in metrics. More...
 
class  Variable
 

Typedefs

template<typename T >
using NonFifoMpmcQueue = GenericQueue<T, impl::SimpleQueuePolicy<true, true>>
 Non FIFO multiple producers multiple consumers queue.
 
template<typename T >
using NonFifoMpscQueue = GenericQueue<T, impl::SimpleQueuePolicy<true, false>>
 Non FIFO multiple producers single consumer queue.
 
template<typename T >
using SpmcQueue = GenericQueue<T, impl::SimpleQueuePolicy<false, true>>
 Single producer multiple consumers queue.
 
template<typename T >
using SpscQueue = GenericQueue<T, impl::SimpleQueuePolicy<false, false>>
 Single producer single consumer queue.
 
template<typename T >
using UnboundedNonFifoMpscQueue = GenericQueue<T, impl::NoMaxSizeQueuePolicy<true, false>>
 Like.
 
template<typename T >
using UnboundedSpmcQueue = GenericQueue<T, impl::NoMaxSizeQueuePolicy<false, true>>
 Like.
 
template<typename T >
using UnboundedSpscQueue = GenericQueue<T, impl::NoMaxSizeQueuePolicy<false, false>>
 Like.
 
using StringStreamQueue = GenericQueue<std::string, impl::ContainerQueuePolicy<false, false>>
 Single producer single consumer queue of std::string which is bounded by the total bytes inside the strings.
 
using BackgroundTaskStorageFastPimpl = utils::FastPimpl<BackgroundTaskStorage, 144, 16>
 

Enumerations

enum class  QueueMaxSizeMode {
  kNone ,
  kDynamicSync
}
 Represents the manner in which the queue enforces the configured max size limit. More...
 
enum class  UnsubscribingKind {
  kManual ,
  kAutomatic
}
 

Typedef Documentation

◆ BackgroundTaskStorageFastPimpl

Enumeration Type Documentation

◆ QueueMaxSizeMode

enum class concurrent::QueueMaxSizeMode
strong

Represents the manner in which the queue enforces the configured max size limit.

See also
GenericQueue
DefaultQueuePolicy
Enumerator
kNone 

No support for setting max size. Fastest.

kDynamicSync 

Supports dynamically changing max size; supports awaiting non-fullness in producers. Slightly slower than kNone.

Definition at line 29 of file queue.hpp.

◆ UnsubscribingKind

enum class concurrent::UnsubscribingKind
strong

Definition at line 59 of file async_event_source.hpp.