com/android/lock_checker/OnThreadLockChecker.class
OnThreadLockChecker.java package com.android.lock_checker com.android.lock_checker.OnThreadLockChecker extends java.lang.Object implements com.android.lock_checker.LockHook$LockChecker { private static final String TAG private static final boolean SKIP_RECURSIVE private final Thread mChecker private final java.util.concurrent.atomic.AtomicInteger mNumDetected private final java.util.concurrent.atomic.AtomicInteger mNumDetectedUnique private final java.util.concurrent.LinkedBlockingQueue mQueue private final ThreadLocal mHeldLocks private final ThreadLocal mStacktraceHasher private final java.util.concurrent.ConcurrentMap mDumpedStacktraceHashes private static java.util.concurrent.ConcurrentMap sLockOrderMap void <init> () public void pre (java.lang.Object) Object lock public void post (java.lang.Object) Object lock private void handlePre (java.lang.Thread, java.lang.Object) Object alreadyHeld com.android.lock_checker.OnThreadLockChecker$OrderData oppositeData int i Thread self Object lock java.util.List heldLocks dalvik.system.AnnotatedStackTraceElement[] annotatedStack com.android.lock_checker.OnThreadLockChecker$OrderData orderData com.android.lock_checker.OnThreadLockChecker$LockPair tmp int size private void handlePost (java.lang.Thread, java.lang.Object) Thread self Object lock java.util.List heldLocks int index private void postViolation (java.lang.Thread, java.lang.Object, java.lang.Object, dalvik.system.AnnotatedStackTraceElement[], com.android.lock_checker.OnThreadLockChecker$OrderData) Thread self Object alreadyHeld Object lock dalvik.system.AnnotatedStackTraceElement[] annotatedStack com.android.lock_checker.OnThreadLockChecker$OrderData oppositeData private void handleViolation (com.android.lock_checker.OnThreadLockChecker$Violation) com.android.lock_checker.OnThreadLockChecker$Violation v int to private void checker () com.android.lock_checker.OnThreadLockChecker$Violation v InterruptedException e public int getNumDetected () public int getNumDetectedUnique () public java.lang.String getCheckerName () public void dump (java.io.PrintWriter) java.io.PrintWriter pw private synthetic void lambda$new$2 () private static synthetic com.android.lock_checker.LockHook$StacktraceHasher lambda$new$1 () private static synthetic java.util.List lambda$new$0 () static void <clinit> () }
com/android/lock_checker/OnThreadLockChecker$Violation.class
OnThreadLockChecker.java package com.android.lock_checker com.android.lock_checker.OnThreadLockChecker$Violation extends java.lang.Object implements com.android.lock_checker.LockHook$Violation { int mSelfTid String mSelfName Object mAlreadyHeld Object mLock dalvik.system.AnnotatedStackTraceElement[] mStack com.android.lock_checker.OnThreadLockChecker$OrderData mOppositeData private static final int STACK_OFFSET void <init> (java.lang.Thread, java.lang.Object, java.lang.Object, dalvik.system.AnnotatedStackTraceElement[], com.android.lock_checker.OnThreadLockChecker$OrderData) Thread self Object alreadyHeld Object lock dalvik.system.AnnotatedStackTraceElement[] stack com.android.lock_checker.OnThreadLockChecker$OrderData oppositeData private static java.lang.String getAnnotatedStackString (dalvik.system.AnnotatedStackTraceElement[], int, java.lang.String, int, java.lang.String) Object held dalvik.system.AnnotatedStackTraceElement element int i dalvik.system.AnnotatedStackTraceElement[] stackTrace int skip String extra int prefixAfter String prefix StringBuilder sb private static java.lang.String describeLocking (java.lang.Object, java.lang.String) Object lock String action private static int getTo (dalvik.system.AnnotatedStackTraceElement[], java.lang.Object) Object heldLock Object[] locks int i dalvik.system.AnnotatedStackTraceElement[] stack Object searchFor int to private static java.lang.String describeLock (java.lang.Object) Object lock public java.lang.Throwable getException () RuntimeException inner RuntimeException outer private java.lang.StackTraceElement[] synthesizeStackTrace (dalvik.system.AnnotatedStackTraceElement[]) int i dalvik.system.AnnotatedStackTraceElement[] stack StackTraceElement[] out public java.lang.String toString () StringBuilder sb }
com/android/lock_checker/OnThreadLockChecker$OrderData.class
OnThreadLockChecker.java package com.android.lock_checker com.android.lock_checker.OnThreadLockChecker$OrderData extends java.lang.Object { final int mTid final String mThreadName final dalvik.system.AnnotatedStackTraceElement[] mStack void <init> (int, java.lang.String, dalvik.system.AnnotatedStackTraceElement[]) int tid String threadName dalvik.system.AnnotatedStackTraceElement[] stack }
com/android/lock_checker/OnThreadLockChecker$LockPair.class
OnThreadLockChecker.java package com.android.lock_checker com.android.lock_checker.OnThreadLockChecker$LockPair extends java.lang.Object { Object mFirst Object mSecond private int mCachedHashCode void <init> (java.lang.Object, java.lang.Object) Object first Object second public void set (java.lang.Object, java.lang.Object) Object newFirst Object newSecond private void computeHashCode () int prime int result public int hashCode () public boolean equals (java.lang.Object) Object obj com.android.lock_checker.OnThreadLockChecker$LockPair other }
com/android/lock_checker/LockHook.class
LockHook.java package com.android.lock_checker public com.android.lock_checker.LockHook extends java.lang.Object { private static final String TAG private static final java.nio.charset.Charset sFilenameCharset private static final android.os.HandlerThread sHandlerThread private static final com.android.lock_checker.LockHook$WtfHandler sHandler private static final java.util.concurrent.atomic.AtomicInteger sTotalObtainCount private static final java.util.concurrent.atomic.AtomicInteger sTotalReleaseCount private static final java.util.concurrent.atomic.AtomicInteger sDeepestNest private static final ThreadLocal sDoCheck static final com.android.internal.util.StatLogger sStats private static final java.util.concurrent.ConcurrentLinkedQueue sViolations private static final int MAX_VIOLATIONS private static final com.android.lock_checker.LockHook$LockChecker[] sCheckers private static boolean sNativeHandling private static boolean sSimulateCrash public void <init> () private static native boolean getNativeHandlingConfig () private static native boolean getSimulateCrashConfig () static boolean shouldDumpStacktrace (com.android.lock_checker.LockHook$StacktraceHasher, java.util.Map, java.lang.Object, dalvik.system.AnnotatedStackTraceElement[], int, int) com.android.lock_checker.LockHook$StacktraceHasher hasher java.util.Map dumpedSet Object val dalvik.system.AnnotatedStackTraceElement[] st int from int to String stacktraceHash static void updateDeepestNest (int) int knownDeepest int nest static void wtf (com.android.lock_checker.LockHook$Violation) com.android.lock_checker.LockHook$Violation v static void doCheckOnThisThread (boolean) boolean check public static void preLock (java.lang.Object) com.android.lock_checker.LockHook$LockChecker checker Object lock public static void postLock (java.lang.Object) com.android.lock_checker.LockHook$LockChecker checker Object lock private static void handleViolation (com.android.lock_checker.LockHook$Violation) com.android.lock_checker.LockHook$Violation v String msg private static native void nWtf (java.lang.String) static void addViolation (com.android.lock_checker.LockHook$Violation) com.android.lock_checker.LockHook$Violation v public static void dump (java.io.PrintWriter, java.lang.String) com.android.lock_checker.LockHook$LockChecker checker Object v java.io.PrintWriter pw String indent int oc int rc int dn public static void dump () java.io.PrintWriter out private static synthetic java.lang.Boolean lambda$static$0 () static void <clinit> () }
com/android/lock_checker/LockHook$WtfHandler.class
LockHook.java package com.android.lock_checker com.android.lock_checker.LockHook$WtfHandler extends android.os.Handler { private static final int MSG_WTF void <init> (android.os.Looper) android.os.Looper looper public void wtf (com.android.lock_checker.LockHook$Violation) com.android.lock_checker.LockHook$Violation v com.android.internal.os.SomeArgs args public void handleMessage (android.os.Message) com.android.internal.os.SomeArgs args android.os.Message msg }
com/android/lock_checker/LockHook$Violation.class
LockHook.java package com.android.lock_checker abstract com.android.lock_checker.LockHook$Violation extends java.lang.Object { public abstract java.lang.Throwable getException () }
com/android/lock_checker/LockHook$Stats.class
LockHook.java package com.android.lock_checker abstract com.android.lock_checker.LockHook$Stats extends java.lang.Object { public static final int ON_THREAD }
com/android/lock_checker/LockHook$StacktraceHasher.class
LockHook.java package com.android.lock_checker com.android.lock_checker.LockHook$StacktraceHasher extends java.lang.Object { private byte[] mLineNumberBuffer private final java.security.MessageDigest mHash void <init> () java.security.NoSuchAlgorithmException e public java.lang.String stacktraceHash (java.lang.Throwable) StackTraceElement e Throwable t public java.lang.String stacktraceHash (dalvik.system.AnnotatedStackTraceElement[], int, int) int i dalvik.system.AnnotatedStackTraceElement[] annotatedStack int from int to private void hashStackTraceElement (java.lang.StackTraceElement) StackTraceElement e int line }
com/android/lock_checker/LockHook$LockChecker.class
LockHook.java package com.android.lock_checker abstract com.android.lock_checker.LockHook$LockChecker extends java.lang.Object { public abstract void pre (java.lang.Object) public abstract void post (java.lang.Object) public abstract int getNumDetected () public abstract int getNumDetectedUnique () public abstract java.lang.String getCheckerName () public abstract void dump (java.io.PrintWriter) }
com/android/lock_checker/
com/android/
com/
META-INF/MANIFEST.MF
META-INF/