void processRegionQueues(InternalCache cache, Iterator iterator) {
    while (iterator.hasNext()) {
      final String regionName = (String) iterator.next();
      final int size = (Integer) iterator.next();
      final LocalRegion region = (LocalRegion) cache.getRegion(regionName);
      final HARegionQueue hrq;
      if (region == null) {
        if (logger.isDebugEnabled()) {
          logger.debug("processing QRM region {} does not exist.", regionName);
        }
        hrq = null;
      } else {
        long maxWaitTimeForInitialization = 30000;
        hrq = ((HARegion) region).getOwnerWithWait(maxWaitTimeForInitialization);
      }
      boolean succeed = processRegionQueue(iterator, regionName, size, hrq);
      if (!succeed) {
        return;
      } else {
        if (hrq != null) {
          hrq.synchronizeQueueWithPrimary(getSender(), cache);
        }
      }
    }
  }
Extracts the region from the message list and hands over the message removal task to the
executor
geode-core/src/main/java/org/apache/geode/internal/cache/ha/QueueRemovalMessage.java