MySQL  8.0.17
Source Code Documentation
MDL_wait_for_graph_visitor Class Referenceabstract

An abstract class for inspection of a connected subgraph of the wait-for graph. More...

#include <mdl.h>

Inheritance diagram for MDL_wait_for_graph_visitor:
Deadlock_detection_visitor

Public Member Functions

virtual bool enter_node (MDL_context *node)=0
 
virtual void leave_node (MDL_context *node)=0
 
virtual bool inspect_edge (MDL_context *dest)=0
 
virtual ~MDL_wait_for_graph_visitor ()
 
 MDL_wait_for_graph_visitor ()
 

Public Attributes

uint m_lock_open_count
 
XXX, hack: During deadlock search, we may need to inspect TABLE_SHAREs and acquire LOCK_open. More...
 

Detailed Description

An abstract class for inspection of a connected subgraph of the wait-for graph.

Constructor & Destructor Documentation

◆ ~MDL_wait_for_graph_visitor()

MDL_wait_for_graph_visitor::~MDL_wait_for_graph_visitor ( )
virtual

◆ MDL_wait_for_graph_visitor()

MDL_wait_for_graph_visitor::MDL_wait_for_graph_visitor ( )
inline

Member Function Documentation

◆ enter_node()

virtual bool MDL_wait_for_graph_visitor::enter_node ( MDL_context node)
pure virtual

Implemented in Deadlock_detection_visitor.

◆ inspect_edge()

virtual bool MDL_wait_for_graph_visitor::inspect_edge ( MDL_context dest)
pure virtual

Implemented in Deadlock_detection_visitor.

◆ leave_node()

virtual void MDL_wait_for_graph_visitor::leave_node ( MDL_context node)
pure virtual

Implemented in Deadlock_detection_visitor.

Member Data Documentation

◆ m_lock_open_count

uint MDL_wait_for_graph_visitor::m_lock_open_count


XXX, hack: During deadlock search, we may need to inspect TABLE_SHAREs and acquire LOCK_open.

Since LOCK_open is not a recursive mutex, count here how many times we "took" it (but only take and release once). Not using a native recursive mutex or rwlock in 5.5 for LOCK_open since it has significant performance impacts.


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