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

◆ atomic_remove_flag()

void MayaFlux::Nodes::atomic_remove_flag ( std::atomic< NodeState > &  state,
NodeState  flags 
)

Atomically removes a flag from a node state.

Parameters
stateThe atomic node state to modify
flagsThe flags to remove from the state

Removes specific state flags from a node's state. This is commonly used to clear processing markers after a node has been processed, or to remove special states like PENDING_REMOVAL when they're no longer applicable.

Definition at line 105 of file NodeUtils.cpp.

106{
107 auto current = state.load();
108 NodeState desired;
109 do {
110 desired = static_cast<NodeState>(current & ~flag);
111 } while (!state.compare_exchange_weak(current, desired,
112 std::memory_order_acq_rel,
113 std::memory_order_acquire));
114}
NodeState
Represents the processing state of a node in the audio graph.
Definition NodeSpec.hpp:43

Referenced by MayaFlux::Nodes::Generator::Generator::enable_mock_process(), MayaFlux::Nodes::Generator::Sine::process_sample(), MayaFlux::Nodes::RootNode::register_node(), MayaFlux::Nodes::ChainNode::reset_processed_state(), MayaFlux::Nodes::BinaryOpNode::reset_processed_state(), MayaFlux::Nodes::CompositeOpNode< N >::reset_processed_state(), and MayaFlux::Nodes::Node::reset_processed_state_internal().

+ Here is the caller graph for this function: