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

◆ process_pending_processor_operations()

void MayaFlux::Buffers::BufferProcessingChain::process_pending_processor_operations ( )
private

Process pending processor operations.

Definition at line 165 of file BufferProcessingChain.cpp.

166{
167 for (auto& m_pending_op : m_pending_ops) {
168 if (m_pending_op.active.load(std::memory_order_acquire)) {
169 auto& op = m_pending_op;
170
171 if (op.is_addition) {
172 add_processor_direct(op.processor, op.buffer);
173 } else {
174 remove_processor_direct(op.processor, op.buffer);
175 }
176
177 op.processor.reset();
178 op.buffer.reset();
179 op.active.store(false, std::memory_order_release);
180 m_pending_count.fetch_sub(1, std::memory_order_relaxed);
181 }
182 }
183}
void remove_processor_direct(const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer)
PendingProcessorOp m_pending_ops[MAX_PENDING_PROCESSORS]
bool add_processor_direct(const std::shared_ptr< BufferProcessor > &processor, const std::shared_ptr< Buffer > &buffer, std::string *rejection_reason=nullptr)

References add_processor_direct(), m_pending_count, m_pending_ops, and remove_processor_direct().

Referenced by process(), and process_non_owning().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: