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

◆ atomic_remove_flag()

void MayaFlux::Nodes::atomic_remove_flag ( std::atomic< Utils::NodeState > &  state,
Utils::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 107 of file NodeUtils.cpp.

108{
109 auto current = state.load();
110 Utils::NodeState desired;
111 do {
112 desired = static_cast<Utils::NodeState>(current & ~flag);
113 } while (!state.compare_exchange_weak(current, desired,
114 std::memory_order_acq_rel,
115 std::memory_order_acquire));
116}

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(), and MayaFlux::Nodes::Node::reset_processed_state_internal().

+ Here is the caller graph for this function: