code: @Override
      public boolean requestPermissionToRead() {
          boolean rc = false;
          synchronized (this) {
              if ((currentState & READ_NOT_ALLOWED_MASK) == 0) {
                  currentState = (currentState | READ_PENDING) & READ_PENDING_CLEAR_OUT;
                  rc = true;
              }
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "requestPermissionToRead returning " + rc);
          }
          return rc;
      }
docs: /*
  @see VirtualConnection#requestPermissionToRead()