docs: public long scheduleTimer(final long deadline)
      {
          final long ticks = Math.max((deadline - startTime) >> resolutionBitsToShift, currentTick);
          final int wheelIndex = (int)(ticks & wheelMask);
          final long[] array = wheel[wheelIndex];
  
          for (int i = 0; i < array.length; i++)
          {
              if (NULL_TIMER == array[i])
              {
                  array[i] = deadline;
                  timerCount++;
  
                  return timerIdForSlot(wheelIndex, i);
              }
          }
  
          final long[] newArray = Arrays.copyOf(array, array.length + 1);
          newArray[array.length] = deadline;
  
          wheel[wheelIndex] = newArray;
          timerCount++;
  
          return timerIdForSlot(wheelIndex, array.length);
      }