From 85341f7a6d91dbff07a80e2442225b238e8a4739 Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:06:16 +0500 Subject: [PATCH] Add missing semaphore release --- .../com/seibel/distanthorizons/core/level/DhServerLevel.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java index 42328cd88..2b3573638 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java @@ -171,10 +171,12 @@ public class DhServerLevel extends AbstractDhLevel implements IDhServerLevel serverPlayerState.getRateLimiterSet(this).fullDataRequestConcurrencyLimiter.release(); + // If this fails, group is being removed and completing cancellation is not necessary if (requestGroup.requestRemoveSemaphore.tryAcquire()) { - // Prevent adding requests in case request will be removed by cancellation + // Prevent adding requests in case request will be removed by this cancellation requestGroup.requestAddSemaphore.acquireUninterruptibly(Short.MAX_VALUE); + requestGroup.requestRemoveSemaphore.release(); if (requestGroup.requestMessages.isEmpty()) {