code: public RequestTable<T> forEachNonBlocking(Visitor<T> visitor) {
          if(visitor == null) return null;
          T[]  buf;
          long lo, hi;
          lock.lock();
          try {
              buf=this.buffer; lo=this.low; hi=this.high;
          }
          finally {
              lock.unlock();
          }
  
          for(long i=lo, num_iterations=0; i < hi && num_iterations < buf.length; i++, num_iterations++) {
              int index=index(i);
              T el=buf[index];
              if(!visitor.visit(el))
                  break;
          }
          return this;
      }
docs: Non-blocking alternative to {@link #forEach(Visitor)}: iteration is performed on the array that exists at the
  time of this call. Changes to the underlying array will not be reflected in the iteration.
  @param visitor the {@link Visitor}.