synchronized( m_hasStarted )
m_hasStarted = new Boolean( false ) ;  while ( m_thread.isAlive() || ! m_activeWorkers.isEmpty() )
    public void stop() throws InterruptedException    {        synchronized( m_hasStarted )        {            m_hasStarted = new Boolean( false ) ;            synchronized( m_activeWorkers )             {                while ( m_thread.isAlive() || ! m_activeWorkers.isEmpty() )                {                    Thread.sleep( 100 ) ;                }            }        }                m_monitor.stopped( this ) ;    }