From bdd816dbdac2c9c46653368a585aabbc581d712a Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Fri, 6 Dec 2024 23:32:56 +0500 Subject: [PATCH] Re-add pruning of visitedPositions --- .../file/fullDatafile/RemoteFullDataSourceProvider.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/RemoteFullDataSourceProvider.java b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/RemoteFullDataSourceProvider.java index 48c2f4e8f..f9827a0b7 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/RemoteFullDataSourceProvider.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/RemoteFullDataSourceProvider.java @@ -19,6 +19,7 @@ package com.seibel.distanthorizons.core.file.fullDatafile; +import com.google.common.cache.CacheBuilder; import com.seibel.distanthorizons.core.dataObjects.fullData.sources.FullDataSourceV2; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; import com.seibel.distanthorizons.core.file.structure.ISaveStructure; @@ -32,9 +33,11 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftCli import org.jetbrains.annotations.Nullable; import java.io.File; +import java.util.Collections; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; /** * Only handles {@link SyncOnLoadRequestQueue} requests (IE updating existing LODs based on a timestamp). @@ -46,7 +49,10 @@ public class RemoteFullDataSourceProvider extends GeneratedFullDataSourceProvide @Nullable private final SyncOnLoadRequestQueue syncOnLoadRequestQueue; - private final Set visitedPositions = ConcurrentHashMap.newKeySet(); + private final Set visitedPositions = Collections.newSetFromMap(CacheBuilder.newBuilder() + .expireAfterWrite(20, TimeUnit.MINUTES) + .build() + .asMap());