private void checkReadIsNotHeld(String want) {
    Reader r = R.get();
    if (r.readRequested) {
      throw new IllegalStateException("Current thread: " + Thread.currentThread() + " holds read lock and requests " + want);
    }
  }
private void checkReadIsNotHeld(String want)