MayaFlux 0.2.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 173 of file BufferProcessingChain.cpp.

174{
175 for (auto& m_pending_op : m_pending_ops) {
176 if (m_pending_op.active.load(std::memory_order_acquire)) {
177 auto& op = m_pending_op;
178
179 if (op.is_addition) {
180 add_processor_direct(op.processor, op.buffer);
181 } else {
182 remove_processor_direct(op.processor, op.buffer);
183 }
184
185 op.processor.reset();
186 op.buffer.reset();
187 op.active.store(false, std::memory_order_release);
188 m_pending_count.fetch_sub(1, std::memory_order_relaxed);
189 }
190 }
191}
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: