question: public boolean free ( T obj ) { AtomicInteger topRef = _top ; while ( true ) { final int top = topRef . get ( ) ; if ( _capacity <= top ) { return false ; } boolean isFree = _freeStack . compareAndSet ( top , null , obj ) ; topRef . compareAndSet ( top , top + 1 ) ; if ( isFree ) { return true ; } } }
target:  Frees the object.  If the free list is full, the object will be garbage collected.