synchronized( hasStarted )
if ( hasStarted.booleanValue() )
    public void start()    {        synchronized( hasStarted )        {            if ( hasStarted.booleanValue() )            {                throw new IllegalStateException( "Already started!" ) ;            }                        hasStarted = new Boolean( true ) ;            thread = new Thread( new StageDriver() ) ;            thread.start() ;        }                monitor.started( this ) ;    }