Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
Loading...
Searching...
No Matches
MpscRingBuffer.hpp File Reference

Lock-free Multi-Producer Single-Consumer (MPSC) bounded ring buffer based on Dmitry Vyukov's algorithm. More...

#include <array>
#include <atomic>
#include <cstddef>
#include <cstdint>
#include <new>
#include <utility>
+ Include dependency graph for MpscRingBuffer.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  corium::MpscRingBuffer< T, Capacity >
 Lock-free Multiple-Producer, Single-Consumer (MPSC) RingBuffer. Implements Dmitry Vyukov's algorithm with zero heap allocations (uses std::array). Cache-line aligned (alignas(CORIUM_CACHE_LINE_SIZE)) to eliminate false sharing. More...
 
struct  corium::MpscRingBuffer< T, Capacity >::PushResult
 

Namespaces

namespace  corium
 
namespace  corium::internal
 

Macros

#define CORIUM_CACHE_LINE_SIZE   64
 

Typedefs

template<typename T , std::size_t Capacity>
using corium::internal::MpscRingBuffer = ::corium::MpscRingBuffer< T, Capacity >
 

Detailed Description

Lock-free Multi-Producer Single-Consumer (MPSC) bounded ring buffer based on Dmitry Vyukov's algorithm.

Macro Definition Documentation

◆ CORIUM_CACHE_LINE_SIZE

#define CORIUM_CACHE_LINE_SIZE   64