Package org.h2.util
Class AbbaDetector
- java.lang.Object
-
- org.h2.util.AbbaDetector
-
public class AbbaDetector extends java.lang.Object
Utility to detect AB-BA deadlocks.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Set<java.lang.String>
KNOWN_DEADLOCKS
private static java.util.Map<java.lang.Object,java.util.Map<java.lang.Object,java.lang.Exception>>
LOCK_ORDERING
Map of (object A) -> ( map of (object locked before object A) -> (stack trace where locked) )private static java.lang.ThreadLocal<java.util.Deque<java.lang.Object>>
STACK
private static boolean
TRACE
-
Constructor Summary
Constructors Constructor Description AbbaDetector()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Object
begin(java.lang.Object o)
This method is called just before or just after an object is synchronized.private static java.lang.String
getObjectName(java.lang.Object o)
private static java.lang.Object
getTest(java.lang.Object o)
private static void
markHigher(java.lang.Object o, java.util.Deque<java.lang.Object> older)
-
-
-
Field Detail
-
TRACE
private static final boolean TRACE
- See Also:
- Constant Field Values
-
STACK
private static final java.lang.ThreadLocal<java.util.Deque<java.lang.Object>> STACK
-
LOCK_ORDERING
private static final java.util.Map<java.lang.Object,java.util.Map<java.lang.Object,java.lang.Exception>> LOCK_ORDERING
Map of (object A) -> ( map of (object locked before object A) -> (stack trace where locked) )
-
KNOWN_DEADLOCKS
private static final java.util.Set<java.lang.String> KNOWN_DEADLOCKS
-
-
Method Detail
-
begin
public static java.lang.Object begin(java.lang.Object o)
This method is called just before or just after an object is synchronized.- Parameters:
o
- the object, or null for the current class- Returns:
- the object that was passed
-
getTest
private static java.lang.Object getTest(java.lang.Object o)
-
getObjectName
private static java.lang.String getObjectName(java.lang.Object o)
-
markHigher
private static void markHigher(java.lang.Object o, java.util.Deque<java.lang.Object> older)
-
-