forked from mirror/Folia
50ad6c3131
Now, entity/global/location schedulers implement a generic run, runDelayed, and runAtFixedRate methods that provide a ScheduledTask value that can be used to interact with the scheduled task. Add also an async task scheduler that implements the same methods, except the delays/periods are in time and not ticks, as the scheduler is independent of the server tick process. Additionally, throw on some unimplemented APIs now.
24 lines
1.3 KiB
Diff
24 lines
1.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
Date: Mon, 20 Mar 2023 02:07:43 -0700
|
|
Subject: [PATCH] Disable mid-tick task execution
|
|
|
|
Mid-tick task execution acquires the ticket lock at least,
|
|
which can possibly be a significant performance bottleneck
|
|
at a high tick thread + region count. This change should reduce
|
|
the impact from scaling the region threads, but is not a fix
|
|
to the underlying issue.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index fb2f7cde13ef96334a42448798a4902e8c1e06a3..d43202f7de86e8d0c74abc0b7ff23baa69da7c87 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -2873,6 +2873,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
}
|
|
|
|
public final void executeMidTickTasks() {
|
|
+ if (true) return; // Folia - disable mid-tick task execution
|
|
org.spigotmc.AsyncCatcher.catchOp("mid tick chunk task execution");
|
|
io.papermc.paper.threadedregions.RegionisedWorldData worldData = io.papermc.paper.threadedregions.TickRegionScheduler.getCurrentRegionisedWorldData(); // Folia - region threading
|
|
long startTime = System.nanoTime();
|