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

◆ atomic_remove_flag()

MAYAFLUX_API 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 282 of file NodeUtils.cpp.

283{
284 auto current = state.load();
285 NodeState desired;
286 do {
287 desired = static_cast<NodeState>(current & ~flag);
288 } while (!state.compare_exchange_weak(current, desired,
289 std::memory_order_acq_rel,
290 std::memory_order_acquire));
291}
glm::vec2 current
NodeState
Represents the processing state of a node in the audio graph.
Definition NodeSpec.hpp:43

References current.

Referenced by MayaFlux::Nodes::Node::exclude_output_from_graph(), 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: