code: public List<T> toList() {
  		final String sourceMethod = "toList"; //$NON-NLS-1$
  		SignalUtil.lock(rwl.readLock(), sourceClass, sourceMethod);
  		List<T> result = null;
  		try {
  			result = Arrays.asList(Arrays.copyOf(items, index.get()));
  		} finally {
  			rwl.readLock().unlock();
  		}
  		return result;
  	}
docs: Returns a list object for this builder.
  <p>
  If this method is called concurrently with adding elements, then there is the potential that
  one or more of the list elements may have unassigned values.
  
  @return a list object for this builder.