From 0a317004119ae5fc7986815d13d9220aed35c20f 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 84024e6ba..78ea0a251 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 63e12399e..80c22f3b8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -994,9 +994,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