From 84a3bcdb0c169415617c66653dcae9432e40d3d4 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 af37c943e7..4a26002efa 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -989,9 +989,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