diff --git a/patches/server/0039-Petal-Multithreaded-Tracker.patch b/patches/server/0039-Petal-Multithreaded-Tracker.patch index 4ca64427..ef2f4940 100644 --- a/patches/server/0039-Petal-Multithreaded-Tracker.patch +++ b/patches/server/0039-Petal-Multithreaded-Tracker.patch @@ -78,7 +78,7 @@ index 66721a27cc9a373a12dffb72c4a403473377eff6..2fbab1b4d20c3ead0ed1a117b29679fa public FullChunkStatus status; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 2b9968a8a3d0d66d9db5a83dcf2a44767a9fe412..e72c6d658f986339dec9dd0a0669e16fd9b5619b 100644 +index 2b9968a8a3d0d66d9db5a83dcf2a44767a9fe412..9050b1c2c77acd335da0ec404ce1322621ba3025 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1128,8 +1128,35 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -107,7 +107,7 @@ index 2b9968a8a3d0d66d9db5a83dcf2a44767a9fe412..e72c6d658f986339dec9dd0a0669e16f + + this.tracking = true; + try { -+ this.multithreadedTracker.tick(); ++ this.multithreadedTracker.processTrackQueue(); + } finally { + this.tracking = false; + } @@ -310,10 +310,10 @@ index abcf4fee07b6ea85de116252b823d30e57006654..af11b77112752a8bb64f6a5cac265a2d public static boolean jadeProtocol = false; diff --git a/src/main/java/org/dreeam/leaf/async/tracker/MultithreadedTracker.java b/src/main/java/org/dreeam/leaf/async/tracker/MultithreadedTracker.java new file mode 100644 -index 0000000000000000000000000000000000000000..9056ea6fc6745f1d83550a544c94c4bd68dc1d2d +index 0000000000000000000000000000000000000000..a19a664eb91e28486baf5699e9dc1321be13ec5c --- /dev/null +++ b/src/main/java/org/dreeam/leaf/async/tracker/MultithreadedTracker.java -@@ -0,0 +1,157 @@ +@@ -0,0 +1,156 @@ +package org.dreeam.leaf.async.tracker; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -338,7 +338,6 @@ index 0000000000000000000000000000000000000000..9056ea6fc6745f1d83550a544c94c4bd + SEND_CHANGES + } + -+ private static final int parallelism = Math.max(4, Runtime.getRuntime().availableProcessors()); + private static final Executor trackerExecutor = new ThreadPoolExecutor( + 1, + org.dreeam.leaf.LeafConfig.asyncPathfindingMaxThreads, @@ -360,7 +359,7 @@ index 0000000000000000000000000000000000000000..9056ea6fc6745f1d83550a544c94c4bd + this.mainThreadTasks = mainThreadTasks; + } + -+ public void tick() { ++ public void processTrackQueue() { + int iterator = this.entityTickingChunks.createRawIterator(); + + if (iterator == -1) { @@ -372,7 +371,7 @@ index 0000000000000000000000000000000000000000..9056ea6fc6745f1d83550a544c94c4bd + this.taskIndex.set(iterator); + this.finishedTasks.set(0); + -+ for (int i = 0; i < parallelism; i++) { ++ for (int i = 0; i < org.dreeam.leaf.LeafConfig.asyncPathfindingMaxThreads; i++) { + trackerExecutor.execute(this::runUpdatePlayers); + } + @@ -381,7 +380,7 @@ index 0000000000000000000000000000000000000000..9056ea6fc6745f1d83550a544c94c4bd + this.handleChunkUpdates(5); // assist + } + -+ while (this.finishedTasks.get() != parallelism) { ++ while (this.finishedTasks.get() != org.dreeam.leaf.LeafConfig.asyncPathfindingMaxThreads) { + this.runMainThreadTasks(); + } +