MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ LockFreeQueue

template<typename T , size_t Capacity>
using MayaFlux::Memory::LockFreeQueue = typedef RingBuffer<T, FixedStorage<T, Capacity>, LockFreePolicy, QueueAccess>

Type alias: Lock-free SPSC queue with fixed capacity.

Template Parameters
TElement type (must be TriviallyCopyable)
CapacityBuffer size (must be power of 2)

Common configuration for real-time producer → non-realtime consumer.

Use Cases:

  • Input event queues (MIDI, OSC, HID)
  • Real-time logging buffers
  • Audio thread → worker thread communication

Example:

// Replace: Memory::LockFreeRingBuffer<InputValue, 4096>
// Audio thread (realtime)
input_queue.push(event); // Wait-free
// Worker thread (non-realtime)
while (auto event = input_queue.pop()) {
process_event(*event);
}
bool push(const T &value) noexcept(is_lock_free)
Push element into buffer.
std::optional< T > pop() noexcept(is_lock_free)
Pop element from buffer.
Policy-driven unified circular buffer implementation.

Definition at line 1127 of file RingBuffer.hpp.