docs: public long getHighestDeliverable() {
          HighestDeliverable visitor=new HighestDeliverable();
          lock.lock();
          try {
              forEach(hd+1, hr, visitor);
              long retval=visitor.getResult();
              return retval == -1? hd : retval;
          }
          finally {
              lock.unlock();
          }
      }