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

◆ empty()

template<typename T , typename StoragePolicy , typename ConcurrencyPolicy = SingleThreadedPolicy, typename AccessPattern = QueueAccess>
bool MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::empty ( ) const
inlinenoexcept

Check if buffer is empty.

Returns
true if no elements present

Definition at line 1033 of file RingBuffer.hpp.

1034 {
1035 if constexpr (is_mpsc) {
1036 return m_state.read_index.load(std::memory_order_acquire)
1037 == m_state.claim_index.load(std::memory_order_acquire);
1038 } else if constexpr (is_lock_free) {
1039 return m_state.read_index.load(std::memory_order_acquire)
1040 == m_state.write_index.load(std::memory_order_acquire);
1041 } else {
1042 return m_state.read_index == m_state.write_index;
1043 }
1044 }
static constexpr bool is_lock_free
static constexpr bool is_mpsc

References MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::is_lock_free, MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::is_mpsc, and MayaFlux::Memory::RingBuffer< T, StoragePolicy, ConcurrencyPolicy, AccessPattern >::m_state.