diff --git a/patches/server/0062-Better-server-sleeping-waiting.patch b/patches/server/0062-Better-server-sleeping-waiting.patch new file mode 100644 index 000000000..de5d9ac1a --- /dev/null +++ b/patches/server/0062-Better-server-sleeping-waiting.patch @@ -0,0 +1,90 @@ +From 24153d1feb47ab075ec741ecd5934016c7cd9e9b Mon Sep 17 00:00:00 2001 +From: Spottedleaf +Date: Sat, 20 Jul 2019 15:20:04 -0700 +Subject: [PATCH] Better server sleeping/waiting + +--- + .../minecraft/server/IAsyncTaskHandler.java | 47 +++++++++++++++++++ + .../net/minecraft/server/MinecraftServer.java | 8 ++-- + 2 files changed, 52 insertions(+), 3 deletions(-) + +diff --git a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java +index 84024e6ba4..78ea0a251e 100644 +--- a/src/main/java/net/minecraft/server/IAsyncTaskHandler.java ++++ b/src/main/java/net/minecraft/server/IAsyncTaskHandler.java +@@ -91,6 +91,53 @@ public abstract class IAsyncTaskHandler implements Mailbox public + while (this.executeNext()) { + ; +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index a8703a42e5..375bc274a7 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -1000,9 +1000,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { +- return !this.canSleepForTick(); +- }); ++ // Paper start - improve wait (MC-149018) ++ // ac will be false here given that flag is set depending on the last value of executeNext, which will be false ++ // after executing all tasks ++ this.waitFor((this.nextTick * 1000 * 1000) - System.nanoTime()); ++ // Paper end + } + + @Override +-- +2.20.1 +