private boolean removeUnexpiredIf(Predicate<Tombstone> predicate) {
      boolean result = false;
      long removalSize = 0;
      lockQueueHead();
      try {
        for (Iterator<Tombstone> it = getQueue().iterator(); it.hasNext();) {
          Tombstone t = it.next();
          if (predicate.test(t)) {
            removalSize += t.getSize();
            it.remove();
            result = true;
          }
        }
      } finally {
        unlockQueueHead();
      }
      updateMemoryEstimate(-removalSize);
      return result;
    }
For each unexpired tombstone this sweeper knows about call the predicate. If the predicate
returns true then remove the tombstone from any storage and update the memory estimate.

@return true if predicate ever returned true
geode-core/src/main/java/org/apache/geode/internal/cache/TombstoneService.java