diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIElementDrawer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIElementDrawer.kt index eb4f883a2..1ed12d611 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIElementDrawer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/gui/GUIElementDrawer.kt @@ -27,21 +27,28 @@ interface GUIElementDrawer { fun drawElements(elements: Collection) { val time = TimeUtil.millis + val tickLatch = CountUpAndDownLatch(1) if (time - lastTickTime > ProtocolDefinition.TICK_TIME) { for (element in elements) { if (!element.enabled) { continue } - element.tick() - if (element is Pollable) { - if (element.poll()) { - element.apply() + tickLatch.inc() + DefaultThreadPool += { + element.tick() + if (element is Pollable) { + if (element.poll()) { + element.apply() + } } + tickLatch.dec() } } lastTickTime = time } + tickLatch.dec() + tickLatch.await() val latch = CountUpAndDownLatch(1) for (element in elements) {