code: public boolean add(long value) {
  
          // volatile read
          final int writeLocation = this.producerWriteLocation;
  
          final int nextWriteLocation = getNextWriteLocationThrowIfFull(writeLocation);
  
          // purposely not volatile
          data[writeLocation] = value;
  
          setWriteLocation(nextWriteLocation);
          return true;
      }
docs: Inserts the specified element into this queue if it is possible to do so immediately without violating
  capacity restrictions, returning <tt>true</tt> upon success and throwing an
  <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted
  queue, it is generally preferable to use {@link #offer(long) offer}.
  
  @param value the element to add
  @return <tt>true</tt> (as specified by {@link java.util.Collection#add})
  @throws IllegalStateException    if the element cannot be added at this time due to capacity
  restrictions
  @throws ClassCastException       if the class of the specified element prevents it from being added to
  this queue
  @throws NullPointerException     if the specified element is null
  @throws IllegalArgumentException if some property of the specified element prevents it from being added
  to this queue