From b3c4ea47d7d742e236d19c3c3e2bd75c90075bf2 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 28 Oct 2023 08:44:33 -0500 Subject: [PATCH] Fix ColumnRenderBuffer never finishing when synced --- .../bufferBuilding/ColumnRenderBuffer.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/ColumnRenderBuffer.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/ColumnRenderBuffer.java index 548933964..192890072 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/ColumnRenderBuffer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/render/bufferBuilding/ColumnRenderBuffer.java @@ -123,8 +123,24 @@ public class ColumnRenderBuffer extends AbstractRenderBuffer } }); - // freeze this DH thread while we wait for MC to upload the buffer - uploadFuture.join(); + + try + { + // wait for the upload to finish + uploadFuture.get(1000, TimeUnit.MILLISECONDS); + } + catch (ExecutionException e) + { + LOGGER.warn("Error uploading builder ["+builder+"] synchronously. Error: "+e.getMessage(), e); + } + catch (TimeoutException e) + { + // timeouts can be ignored because it generally means the + // MC Render thread executor was closed + //LOGGER.warn("Error uploading builder ["+builder+"] synchronously. Error: "+e.getMessage(), e); + } + + } } private void uploadBuffersUsingUploadMethod(LodQuadBuilder builder, EGpuUploadMethod gpuUploadMethod) throws InterruptedException