code: public boolean addIfOpen(E element) {
  		requireNonNull(element);
  
  		lock.lock();
  		try {
  			if (open) {
  				elements.addLast(element);
  				if (elements.size() == 1) {
  					nonEmpty.signalAll();
  				}
  			}
  			return open;
  		} finally {
  			lock.unlock();
  		}
  	}
docs: Tries to add an element to the queue, if the queue is still open. Checking whether the queue
  is open and adding the element is one atomic operation.
  
  <p>Unlike the {@link #add(Object)} method, this method never throws an exception,
  but only indicates via the return code if the element was added or the
  queue was closed.
  
  @param element The element to add.
  @return True, if the element was added, false if the queue was closes.