code: public boolean free(T obj)
      {
          int top = _top.get();
  
          if (top < _freeStack.length()) {
              boolean isFree = _freeStack.compareAndSet(top, null, obj);
  
              _top.compareAndSet(top, top + 1);
  
              return isFree;
          }
          else
              return false;
      }
docs: Frees the object.  If the free list is full, the object will be garbage
  collected.
  
  @param obj the object to be freed.