docs: public static <T> boolean remove( T holder,
                                        AtomicReferenceFieldUpdater<T, Pointer[]> updater,
                                        Pointer pointer ) {
          int numToRemove;
          Pointer[] oldPointers;
          Pointer[] newPointers;
  
          do {
              oldPointers = updater.get(holder);
              numToRemove = countMatching(oldPointers, pointer);
              if (0 == numToRemove) break;
  
              final int oldSize = oldPointers.length;
              newPointers = new Pointer[oldSize - numToRemove];
  
              // Copy all but the 'pointer' into the new array ...
              for (int i = 0, pos = 0; i < oldSize; i++) {
                  final Pointer testPointer = oldPointers[i];
                  if (pointer != testPointer) {
                      newPointers[pos++] = testPointer;
                  }
              }
          } while (!updater.compareAndSet(holder, oldPointers, newPointers));
          return numToRemove != 0;
      }