Blender  V3.3
Public Member Functions | Public Attributes | List of all members
blender::modifiers::geometry_nodes::LockedNode Class Reference
Inheritance diagram for blender::modifiers::geometry_nodes::LockedNode:
blender::NonCopyable blender::NonMovable

Public Member Functions

 LockedNode (const DNode node, NodeState &node_state)
 

Public Attributes

const DNode node
 
NodeStatenode_state
 
Vector< DOutputSocketdelayed_required_outputs
 
Vector< DOutputSocketdelayed_unused_outputs
 
Vector< DNodedelayed_scheduled_nodes
 

Detailed Description

Utility class that wraps a node whose state is locked. Having this is a separate class is useful because it allows methods to communicate that they expect the node to be locked.

Definition at line 297 of file MOD_nodes_evaluator.cc.

Constructor & Destructor Documentation

◆ LockedNode()

blender::modifiers::geometry_nodes::LockedNode::LockedNode ( const DNode  node,
NodeState node_state 
)
inline

Definition at line 317 of file MOD_nodes_evaluator.cc.

Member Data Documentation

◆ delayed_required_outputs

Vector<DOutputSocket> blender::modifiers::geometry_nodes::LockedNode::delayed_required_outputs

Used to delay notifying (and therefore locking) other nodes until the current node is not locked anymore. This might not be strictly necessary to avoid deadlocks in the current code, but it is a good measure to avoid accidentally adding a deadlock later on. By not locking more than one node per thread at a time, deadlocks are avoided.

The notifications will be send right after the node is not locked anymore.

Definition at line 313 of file MOD_nodes_evaluator.cc.

Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required().

◆ delayed_scheduled_nodes

Vector<DNode> blender::modifiers::geometry_nodes::LockedNode::delayed_scheduled_nodes

◆ delayed_unused_outputs

Vector<DOutputSocket> blender::modifiers::geometry_nodes::LockedNode::delayed_unused_outputs

◆ node

const DNode blender::modifiers::geometry_nodes::LockedNode::node

◆ node_state

NodeState& blender::modifiers::geometry_nodes::LockedNode::node_state

The documentation for this class was generated from the following file: