25#ifndef LMMS_LOCKLESS_RING_BUFFER_H
26#define LMMS_LOCKLESS_RING_BUFFER_H
29#include <QWaitCondition>
31#include <ringbuffer/ringbuffer.h>
54 std::size_t
write(
const T *src, std::size_t cnt,
bool notify =
false)
75 ringbuffer_reader_t<T>(rb.m_buffer),
78 bool empty()
const {
return !this->read_space();}
84 useless_lock.unlock();
A convenience layer for a realtime-safe and thread-safe multi-reader ringbuffer.
Definition LocklessRingBuffer.h:41
std::size_t free() const
Definition LocklessRingBuffer.h:52
std::size_t capacity() const
Definition LocklessRingBuffer.h:51
void mlock()
Definition LocklessRingBuffer.h:61
QWaitCondition m_notifier
Definition LocklessRingBuffer.h:65
~LocklessRingBuffer()=default
LocklessRingBuffer(std::size_t sz)
Definition LocklessRingBuffer.h:45
std::size_t write(const T *src, std::size_t cnt, bool notify=false)
Definition LocklessRingBuffer.h:54
ringbuffer_t< T > m_buffer
Definition LocklessRingBuffer.h:64
void wakeAll()
Definition LocklessRingBuffer.h:53
friend class LocklessRingBufferReader
Definition LocklessRingBuffer.h:43
LocklessRingBufferReader(LocklessRingBuffer< T > &rb)
Definition LocklessRingBuffer.h:74
bool empty() const
Definition LocklessRingBuffer.h:78
void waitForData()
Definition LocklessRingBuffer.h:79
QWaitCondition * m_notifier
Definition LocklessRingBuffer.h:87
Definition AudioAlsa.cpp:35