public void run() {
		if (m_shutdown) {
			throw processException("The console can not be run because it's already shutdown");
		}
		m_container.start();
		m_container.getComponent(AgentProcessControlImplementation.class);
		ConsoleCommunication communication = m_container.getComponent(ConsoleCommunication.class);
		synchronized (m_eventSyncCondition) {
			// Now ready to work
			m_eventSyncCondition.notifyAll();
		}
		// CHECKSTYLE:OFF
		while (communication.processOneMessage()) {
			noOp();
			// Fall through
			// Process until communication is shut down.
		}
	}
Run agent controller in synchronized way.
ngrinder-core/src/main/java/net/grinder/AgentControllerServer.java