void notifyClientsOfTombstoneGC(Map<VersionSource<?>, Long> regionGCVersions,
      Set<Object> keysRemoved, EventID eventID, FilterInfo routing) {
    if (CacheClientNotifier.singletonHasClientProxies()) {
      // Only route the event to clients interested in the partitioned region.
      // We do this by constructing a region-level event and then use it to
      // have the filter profile ferret out all of the clients that have interest
      // in this region
      FilterProfile fp = getFilterProfile();
      if (fp != null || routing != null) {
        RegionEventImpl regionEvent =
            new RegionEventImpl(this, Operation.REGION_DESTROY, null, true, getMyId());
        regionEvent.setEventID(eventID);
        if (routing == null) {
          routing = fp.getLocalFilterRouting(regionEvent);
        }
        regionEvent.setLocalFilterInfo(routing);
        ClientUpdateMessage clientMessage =
            ClientTombstoneMessage.gc(this, regionGCVersions, eventID);
        CacheClientNotifier.notifyClients(regionEvent, clientMessage);
      }
    }
  }
pass tombstone garbage-collection info to clients

@param eventID the ID of the event
@param routing routing info (routing is computed if this is null)
geode-core/src/main/java/org/apache/geode/internal/cache/LocalRegion.java