From 4299c69e137c2882bce7547c871c9c8a5a86b641 Mon Sep 17 00:00:00 2001
From: Nassim Jahnke <nassim@njahnke.dev>
Date: Sat, 30 Nov 2024 10:44:57 +0100
Subject: [PATCH] Add back discard policy

---
 patches/server/Async-command-map-building.patch | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/patches/server/Async-command-map-building.patch b/patches/server/Async-command-map-building.patch
index b402a39439..4c03e1ec2f 100644
--- a/patches/server/Async-command-map-building.patch
+++ b/patches/server/Async-command-map-building.patch
@@ -22,11 +22,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
 +        COMMAND_SENDING_POOL.execute(() -> this.sendAsync(player, commandNodes));
 +    }
 +
-+    public static final java.util.concurrent.ExecutorService COMMAND_SENDING_POOL = java.util.concurrent.Executors.newFixedThreadPool(2,
++    // Fixed pool, but with discard policy
++    public static final java.util.concurrent.ExecutorService COMMAND_SENDING_POOL = new java.util.concurrent.ThreadPoolExecutor(
++        2, 2, 0, java.util.concurrent.TimeUnit.MILLISECONDS,
++        new java.util.concurrent.LinkedBlockingQueue<>(),
 +        new com.google.common.util.concurrent.ThreadFactoryBuilder()
 +            .setNameFormat("Paper Async Command Builder Thread Pool - %1$d")
 +            .setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER))
-+            .build()
++            .build(),
++        new java.util.concurrent.ThreadPoolExecutor.DiscardPolicy()
 +    );
 +
 +    private void sendAsync(ServerPlayer player, Collection<CommandNode<CommandSourceStack>> dispatcherRootChildren) {