code: private int getAndUpdateTail() {
          int retMe;
  
          do {
              retMe = tailIndex.get();
          } while (tailIndex.compareAndSet(retMe, getNext(retMe)) == false);
  
          return retMe;
      }
docs: Atomically update and return the tailIndex.
  
  Guarantees that two threads won't simultaneously update the same slot
  in the array.