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 |
| Consumer side of concurrent queues. More... | |
| 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 |
| Producer side of concurrent queues. More... | |
| 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, 208, 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 } |
| using concurrent::BackgroundTaskStorageFastPimpl = utils::FastPimpl<BackgroundTaskStorage, 208, 16> |
Definition at line 12 of file background_task_storage_fwd.hpp.
|
strong |
Represents the manner in which the queue enforces the configured max size limit.
| 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. |
|
strong |
Definition at line 61 of file async_event_source.hpp.