android/guava/src/com/google/common/util/concurrent/CycleDetectingLockFactory.java
public ReentrantReadWriteLock newReentrantReadWriteLock(String lockName, boolean fair) {
    return policy == Policies.DISABLED
        ? new ReentrantReadWriteLock(fair)
        : new CycleDetectingReentrantReadWriteLock(new LockGraphNode(lockName), fair);
  }
public ReentrantReadWriteLock newReentrantReadWriteLock(String lockName, boolean fair) {
    return policy == Policies.DISABLED
        ? new ReentrantReadWriteLock(fair)
        : new CycleDetectingReentrantReadWriteLock(new LockGraphNode(lockName), fair);
  }
Creates a {@link ReentrantReadWriteLock} with the given fairness policy. The {@code lockName}
is used in the warning or exception output to help identify the locks involved in the detected
deadlock.