code: public VisitState acquire() throws InterruptedException {
  		final WorkbenchEntry entry = entries.take();
  		assert ! entry.isEmpty();
  		// No race condition is possible here, because entry is nonempty.
  		assert ! entry.acquired;
  		entry.acquired = true;
  
  		final VisitState visitState = entry.remove();
  		assert visitState.workbenchEntry == entry;
  		assert ! visitState.isEmpty();
  		// No race condition is possible here, because visitState is nonempty.
  		assert ! visitState.acquired;
  		visitState.acquired = true;
  
  		approximatedSize.decrementAndGet();
  		return visitState;
  	}
docs: Acquires a visit state for a scheme+authority accessible by politeness.
  Note that this is a blocking method that will wait until such a state is available.
  
  <p>You <strong>must</strong> call {@link #release(VisitState)} when you have finished.
  
  @return a visit state with nonempty URL queue
  for a scheme+authority accessible by politeness.