diff --git a/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java b/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java index 9bcab5a86..eeb478333 100644 --- a/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java +++ b/core/src/main/java/com/volmit/iris/core/service/IrisEngineSVC.java @@ -102,7 +102,7 @@ public class IrisEngineSVC implements IrisService { Engine engine = supplier.get(); if (engine != null) { long unloadStart = System.currentTimeMillis(); - int count = engine.getMantle().unloadTectonicPlate(); + int count = engine.getMantle().unloadTectonicPlate(tectonicLimit.get()); if (count > 0) { Iris.info(C.GOLD + "Unloaded " + C.YELLOW + count + " TectonicPlates in " + C.RED + Form.duration(System.currentTimeMillis() - unloadStart, 2)); } diff --git a/core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java index fe17b0655..c8326ffd0 100644 --- a/core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java +++ b/core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java @@ -178,8 +178,8 @@ public interface EngineMantle extends IObjectPlacer { default void trim(int limit) { getMantle().trim(TimeUnit.SECONDS.toMillis(IrisSettings.get().getPerformance().getMantleKeepAlive()), limit); } - default int unloadTectonicPlate(){ - return getMantle().unloadTectonicPlate(); + default int unloadTectonicPlate(int tectonicLimit){ + return getMantle().unloadTectonicPlate(tectonicLimit); } default MultiBurst burst() { diff --git a/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java index d4c04a189..e459fdfe0 100644 --- a/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ b/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java @@ -445,7 +445,11 @@ public class Mantle { } } - public int unloadTectonicPlate() { + public int unloadTectonicPlate(int tectonicLimit) { + // todo: make a advanced unloader + if (toUnload.size() > tectonicLimit){ + dynamicThreads.set(2); + } AtomicInteger i = new AtomicInteger(); unloadLock.lock(); try {