From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Cryptite Date: Mon, 5 Aug 2024 15:07:31 -0500 Subject: [PATCH] Affinity Locks diff --git a/build.gradle.kts b/build.gradle.kts index 46980b062980be8c564a215a2ae67e0d1fe5251e..2b1fd2cd7046f283510cd6e801abd8f49b0e8870 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -24,6 +24,9 @@ dependencies { implementation("com.fasterxml.jackson.core:jackson-core:2.13.0") implementation("com.fasterxml.jackson.core:jackson-databind:2.13.0") implementation("com.fasterxml.jackson.core:jackson-annotations:2.13.0") + + // https://mvnrepository.com/artifact/net.openhft/Java-Thread-Affinity + implementation("net.openhft:affinity:3.26ea5") // Slice end implementation("org.mongodb:bson:4.11.1") // Slice - MongoDB Bson Library for ObjectIds diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java index bc391d27399d8c22e78735ca39aa8ab45efb6413..fc1002b11f38ab31ff4148dbb8398f41389a3980 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -342,7 +342,7 @@ public class Main { } return dedicatedserver1; - }); + }, dedicatedserversettings.getProperties().pinnedCPU); /* CraftBukkit start Thread thread = new Thread("Server Shutdown Thread") { public void run() { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index b8a43a2833b9f014067681277edad3b96a6d63cd..5c874b36dc8fd2c31192888bead8bc685d391ea0 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -316,10 +316,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { + public static S spin(Function serverFactory, int pinnedCPU) { AtomicReference atomicreference = new AtomicReference(); Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system - ((MinecraftServer) atomicreference.get()).runServer(); + ((MinecraftServer) atomicreference.get()).runServer(pinnedCPU); }, "Server thread"); thread.setUncaughtExceptionHandler((thread1, throwable) -> { @@ -1135,8 +1135,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop