docs: public void sendStopNodeNotice(int targetHostId) {
          // First add a notice to local
          addStopNodeNotice(targetHostId);
  
          // Then contact other peers
          List<FutureTask<Void>> tasks = new ArrayList<FutureTask<Void>>();
          for (int hostId : m_foreignHosts.keySet()) {
              if (hostId == m_localHostId) {
                  continue; /* skip target host */
              }
              Iterator<ForeignHost> it = m_foreignHosts.get(hostId).iterator();
              if (it.hasNext()) {
                  ForeignHost fh = it.next();
                  if (fh.isUp()) {
                      FutureTask<Void> task = fh.sendStopNodeNotice(targetHostId);
                      if (task != null) {
                          tasks.add(task);
                      }
                  }
              }
          }
          for (FutureTask<Void> task : tasks) {
              try {
                  task.get();
              } catch (InterruptedException | ExecutionException e) {
                  hostLog.info("Failed to send StopNode notice to other nodes.");
              }
          }
      }