@Override
    public void run() {
      GatewaySenderEventImpl event = (GatewaySenderEventImpl) conflatableObject;
      String regionPath =
          ColocationHelper.getLeaderRegion((PartitionedRegion) event.getRegion()).getFullPath();
      PartitionedRegion prQ = userRegionNameToShadowPRMap.get(regionPath);
      try {
        destroyEventFromQueue(prQ, bucketId, previousTailKeyTobeRemoved);
      } catch (EntryNotFoundException e) {
        if (logger.isDebugEnabled()) {
          logger.debug("{}: Not conflating {} due to EntryNotFoundException", this,
              conflatableObject.getKeyToConflate());
        }
      }
      if (logger.isDebugEnabled()) {
        logger.debug("{}: Conflated {} for key={} in queue for region={}", this,
            conflatableObject.getValueToConflate(), conflatableObject.getKeyToConflate(),
            prQ.getName());
      }
    }
This class carries out the actual removal of the previousTailKey from QPR. The class implements
Runnable and the destroy operation is done in the run method. The Runnable is executed by the
one of the threads in the conflation thread pool configured above.
geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderQueue.java