| My Project
   
    | 
 
  
 | Public Member Functions | |
| Deadlock_detection_visitor (MDL_context *start_node_arg) | |
| virtual bool | enter_node (MDL_context *node) | 
| virtual void | leave_node (MDL_context *node) | 
| virtual bool | inspect_edge (MDL_context *dest) | 
| MDL_context * | get_victim () const | 
A context of the recursive traversal through all contexts in all sessions in search for deadlock.
| bool Deadlock_detection_visitor::enter_node | ( | MDL_context * | node | ) |  [virtual] | 
Enter a node of a wait-for graph. After a node is entered, inspect_edge() will be called for all wait-for destinations of this node. Then leave_node() will be called. We call "enter_node()" for all nodes we inspect, including the starting node.
| TRUE | Maximum search depth exceeded. | 
| FALSE | OK. | 
Implements MDL_wait_for_graph_visitor.
| bool Deadlock_detection_visitor::inspect_edge | ( | MDL_context * | node | ) |  [virtual] | 
Inspect a wait-for graph edge from one MDL context to another.
| TRUE | A loop is found. | 
| FALSE | No loop is found. | 
Implements MDL_wait_for_graph_visitor.
| void Deadlock_detection_visitor::leave_node | ( | MDL_context * | node | ) |  [virtual] | 
Done inspecting this node. Decrease the search depth. If a deadlock is found, and we are backtracking to the start node, optionally change the deadlock victim to one with lower deadlock weight.
Implements MDL_wait_for_graph_visitor.
 1.7.6.1
 1.7.6.1