MayaFlux 0.4.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 71 of file NodeUtils.cpp.

72{
73 auto current = state.load();
74 NodeState desired;
75 do {
76 desired = static_cast<NodeState>(current & ~flag);
77 } while (!state.compare_exchange_weak(current, desired,
78 std::memory_order_acq_rel,
79 std::memory_order_acquire));
80}
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: