private boolean tryReadLock(Reader status) {
    throwIfImpatient(status);
    if (!isWriteInAnyState()) {
      status.readRequested = true;
      if (!isWriteInAnyState()) {
        return true;
      }
      status.readRequested = false;
    }
    return false;
  }
private boolean tryReadLock(Reader status)