docs: public void stop(int mode)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "stop");
  
          // Prevent any new async deletion activity kicking off a new background thread.
          setIsAsyncDeletionThreadStartable(false);
  
          // stop the async deletion thread if it's currently running.
          synchronized (deletionThreadLock)
          {
              if (asynchDeletionThread != null)
              {
                  asynchDeletionThread.stopThread(messageProcessor.getStoppableThreadCache());
              }
          }
  
          //Make sure that this is null, so that unittests that only restart MP dont
          //see a half stopped asynch deletion thread.
          asynchDeletionThread = null;
  
          // Propogate the stop stimulus to the destination handlers...
          DestinationTypeFilter destFilter = new DestinationTypeFilter();
          destFilter.LOCAL = Boolean.TRUE;
          SIMPIterator itr = destinationIndex.iterator(destFilter);
          while (itr.hasNext())
          {
              DestinationHandler dh = (DestinationHandler) itr.next();
              dh.stop(mode);
          }
          itr.finished();
  
          //busses
          itr = foreignBusIndex.iterator();
          while (itr.hasNext())
          {
              DestinationHandler dh = (DestinationHandler) itr.next();
              dh.stop(mode);
          }
          itr.finished();
  
          //links
          LinkTypeFilter linkFilter = new LinkTypeFilter();
          linkFilter.LOCAL = Boolean.TRUE;
          itr = linkIndex.iterator(linkFilter); //d266910
          while (itr.hasNext())
          {
              DestinationHandler dh = (DestinationHandler) itr.next();
              dh.stop(mode);
          }
          itr.finished();
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "stop");
      }