code: private NodeStruct nodesWithDataTakeUnsafe() {
      LOG.entering("OperatorTopologyStructImpl", "nodesWithDataTakeUnsafe");
      try {
        final NodeStruct child = nodesWithData.take();
        LOG.exiting("OperatorTopologyStructImpl", "nodesWithDataTakeUnsafe", child);
        return child;
  
      } catch (final InterruptedException e) {
        throw new RuntimeException("InterruptedException while waiting to take data from nodesWithData queue", e);
      }
    }
docs: Retrieves and removes the head of {@code nodesWithData}, waiting if necessary until an element becomes available.
  (Comment taken from {@link java.util.concurrent.BlockingQueue})
  If interrupted while waiting, then throws a RuntimeException.
  
  @return the head of this queue