Check if all active dimensions have been consumed in this cycle.
719{
720 bool result = false;
722 result = std::ranges::all_of(
m_active_readers, [
this](
const auto& dim_reader_pair) {
723 const auto& [dim, expected_count] = dim_reader_pair;
725 [dim](const auto& reader_dims_pair) {
726 return reader_dims_pair.second.contains(dim);
727 });
728 return actual_count >= expected_count;
729 });
730 });
731 return result;
732}
Memory::Seqlock m_reader_lock
std::unordered_map< uint32_t, int > m_active_readers
std::unordered_map< uint32_t, std::unordered_set< uint32_t > > m_reader_consumed_dimensions
bool seqlock_read_void(const Seqlock &lock, uint32_t max_attempts, Fn &&fn)
Invoke a void read functor under a Seqlock with a bounded retry count.