question: public final T allocate ( ) { AtomicInteger topRef = _top ; while ( true ) { final int top = topRef . get ( ) ; if ( top <= 0 ) { return null ; } else if ( topRef . compareAndSet ( top , top - 1 ) ) { T value = _freeStack . getAndSet ( top - 1 , null ) ; if ( value != null ) { return value ; } } } }
target:  Try to get an object from the free list.  Returns null if the free list is empty.