private void waitUntilReadyForMessages() {
    if (readyForMessages) {
      return;
    }
    synchronized (this) {
      while (!readyForMessages) {
        stopper.checkCancelInProgress(null);
        boolean interrupted = Thread.interrupted();
        try {
          wait();
        } catch (InterruptedException e) {
          interrupted = true;
          stopper.checkCancelInProgress(e);
        } finally {
          if (interrupted) {
            Thread.currentThread().interrupt();
          }
        }
      }
    } // synchronized
  }
Need to do this outside the constructor so that the child constructor can finish.
geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java