code: public boolean compareAndSetHi(int expectHi, int hi) {
          while (true) {
              long encoded = get();
              if (getHi(encoded) != expectHi)
                  return false;
              long update = encodeHi(encoded, hi);
              if (compareAndSet(encoded, update))
                  return true;
          }
      }
docs: <p>Atomically sets the hi value to the given updated value
  only if the current value {@code ==} the expected value.</p>
  <p>Concurrent changes to the lo value result in a retry.</p>
  
  @param expectHi the expected hi value
  @param hi       the new hi value
  @return {@code true} if successful. False return indicates that
  the actual hi value was not equal to the expected hi value.