T get() {
    InstanceHolder<T> instanceHolder;
    boolean interrupted = false;

    while ((instanceHolder = this.instanceHolder) == null) {
      try {
        pendingLatch.await();
      } catch (InterruptedException e) {
        interrupted = true;
      }
    }

    if (interrupted) {
      Thread.currentThread().interrupt();
    }
    return instanceHolder.instance;
  }
Returns the instance given by the method {@link #prepare}. This is an uninterruptible blocking
method and the interruption flag will be set just before returning if any.
hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/InstancePending.java