public static void awaitShutdown(IStartedGame startedGame) { final MutableInt gameStopped = new MutableInt(0); startedGame.setGameExitListener(game -> { gameStopped.value = 1; synchronized (gameStopped) { gameStopped.notifyAll(); } }); ((GameRunner) startedGame).stopGame(); synchronized (gameStopped) { while (gameStopped.value == 0 && !startedGame.isShutdownFinished()) { try { gameStopped.wait(); } catch (InterruptedException e) { } } } }