Blender V5.0
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 192 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 210 of file lazy_function_graph_executor.cc.

References node, and node_state.

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

◆ delayed_unused_outputs

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

Definition at line 208 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 196 of file lazy_function_graph_executor.cc.

Referenced by LockedNode().

◆ node_state

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

Definition at line 197 of file lazy_function_graph_executor.cc.

Referenced by LockedNode().


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