public boolean offer(E e){
  if (e == null) {
    throw new NullPointerException();
  }
  Node<E> n=new Node<E>(e,null);
  for (; ; ) {
    Node<E> t=tail;
    n.setNext(t);
    count.incrementAndGet();
    if (casTail(t,n)) {
      t.setPrev(n);
      return true;
    }
  }
}

public boolean offer ( E e ) { if ( e == null ) { throw new NullPointerException ( ) ; } Node < E > n = new Node < E > ( e , null ) ; for ( ; ; ) { Node < E > t = tail ; n . setNext ( t ) ; count . incrementAndGet ( ) ; if ( casTail ( t , n ) ) { t . setPrev ( n ) ; return true ; } } }
enqueues the specified element at the tail of this queue .
