From 0111a8e2ecb63d1ceceaadf8f94154298795e579 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:02:35 -0500 Subject: [PATCH] Improve reliability of async blockstate rebuild logic --- .../modernfix/blockstate/BlockStateCacheHandler.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/embeddedt/modernfix/blockstate/BlockStateCacheHandler.java b/src/main/java/org/embeddedt/modernfix/blockstate/BlockStateCacheHandler.java index e1c034e9..dff7188b 100644 --- a/src/main/java/org/embeddedt/modernfix/blockstate/BlockStateCacheHandler.java +++ b/src/main/java/org/embeddedt/modernfix/blockstate/BlockStateCacheHandler.java @@ -21,7 +21,6 @@ import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import java.util.stream.StreamSupport; public class BlockStateCacheHandler { private static final Set PRECACHED_COLLISION_SHAPES = ImmutableSet.builder() @@ -45,7 +44,9 @@ public class BlockStateCacheHandler { ModernFix.LOGGER.warn("Interrupting previous blockstate cache rebuild"); currentRebuildThread.stopRebuild(); try { - currentRebuildThread.join(); + currentRebuildThread.join(10000); + if(currentRebuildThread.isAlive()) + throw new IllegalStateException("Blockstate cache rebuild thread has hung"); } catch(InterruptedException e) { throw new RuntimeException("Don't interrupt Minecraft threads", e); }