private void checkForMissingColocatedRegion() {
    DistributedSystem.setThreadsSocketPolicy(true /* conserve sockets */);
    SystemFailure.checkFailure();
    CancelCriterion cancelCriterion = region.getSystem().getCancelCriterion();
    if (cancelCriterion.isCancelInProgress()) {
      return;
    }
    try {
      checkForMissingColocatedRegion(cancelCriterion);
    } catch (VirtualMachineError error) {
      SystemFailure.initiateFailure(error);
      // If this ever returns, rethrow the error. We're poisoned
      // now, so don't let this thread continue.
      throw error;
    } catch (Throwable t) {
      // Whenever you catch Error or Throwable, you must also
      // catch VirtualMachineError (see above). However, there is
      // _still_ a possibility that you are dealing with a cascading
      // error condition, so you also need to check to see if the JVM
      // is still usable:
      SystemFailure.checkFailure();
      if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Unexpected exception in colocation", t);
      }
    }
  }
Updates the missing colocated child region list and returns a copy of the list.

<p>
The list of missing child regions is normally updated lazily, only when this logger thread
periodically wakes up to log warnings about the colocated regions that are still missing. This
method performs an on-demand update of the list so if called between logging intervals the
returned list is current.
geode-core/src/main/java/org/apache/geode/internal/cache/partitioned/colocation/SingleThreadColocationLogger.java