code: void halt (final boolean wait)
    {
      synchronized (m_aSigLock)
      {
        m_aHalted.set (true);
  
        if (m_bPaused)
        {
          m_aSigLock.notifyAll ();
        }
        else
        {
          signalSchedulingChange (0);
        }
      }
  
      if (wait)
      {
        boolean interrupted = false;
        try
        {
          while (true)
          {
            try
            {
              join ();
              break;
            }
            catch (final InterruptedException ex)
            {
              interrupted = true;
            }
          }
        }
        finally
        {
          if (interrupted)
          {
            Thread.currentThread ().interrupt ();
          }
        }
      }
    }
docs: <p>
  Signals the main processing loop to pause at the next possible point.
  </p>