code: public void stop() {
      if (stopRequested) {
        return;
      }
      stopRequested = true;
      running = false;
      if (server != null) server.stop();
      if (triggerThread != null) {
        triggerThread.interrupt();
        triggerMonitor = null;
      }
      if (urfThread != null) {
        urfThread.interrupt();
        urfProcessor = null;
      }
      if (blockIntegrityMonitor != null) blockIntegrityMonitor.running = false;
      if (blockFixerThread != null) blockFixerThread.interrupt();
      if (blockCopierThread != null) blockCopierThread.interrupt();
      if (corruptFileCounterThread != null) corruptFileCounterThread.interrupt();
      if (purgeMonitor != null) purgeMonitor.running = false;
      if (purgeThread != null) purgeThread.interrupt();
      if (placementMonitor != null) placementMonitor.stop();
      if (statsCollector != null) statsCollector.stop();
      if (statsCollectorThread != null) statsCollectorThread.interrupt();
      if (infoServer != null) {
        try {
          infoServer.stop();
        } catch (Exception e) {
          LOG.warn("Exception shutting down " + RaidNode.class, e);
        }
      }
      this.unregisterMBean();
    }
docs: Stop all RaidNode threads and wait for all to finish.