Blender V4.3
blender::fn::lazy_function::LockedNode Struct Reference

Public Member Functions

 LockedNode (const Node &node, NodeState &node_state)
 

Public Attributes

const Nodenode
 
NodeStatenode_state
 
Vector< const OutputSocket * > delayed_required_outputs
 
Vector< const OutputSocket * > delayed_unused_outputs
 

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 193 of file lazy_function_graph_executor.cc.

Constructor & Destructor Documentation

◆ LockedNode()

blender::fn::lazy_function::LockedNode::LockedNode ( const Node & node,
NodeState & node_state )
inline

Definition at line 211 of file lazy_function_graph_executor.cc.

Member Data Documentation

◆ delayed_required_outputs

Vector<const OutputSocket *> blender::fn::lazy_function::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 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 208 of file lazy_function_graph_executor.cc.

◆ delayed_unused_outputs

Vector<const OutputSocket *> blender::fn::lazy_function::LockedNode::delayed_unused_outputs

Definition at line 209 of file lazy_function_graph_executor.cc.

◆ node

const Node& blender::fn::lazy_function::LockedNode::node

This is the node that is currently locked.

Definition at line 197 of file lazy_function_graph_executor.cc.

◆ node_state

NodeState& blender::fn::lazy_function::LockedNode::node_state

Definition at line 198 of file lazy_function_graph_executor.cc.


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