Paper/Spigot-Server-Patches/0190-Enforce-Sync-Player-Saves.patch
Aikar 709d95ae00
Add max-player-auto-save-per-tick setting to spread out saves more
This will force the saves to spread over multiple ticks even when many
players auto save interval is aligned, avoiding spikes on large servers.

Closes #1021
2018-03-04 20:20:27 -05:00

32 lines
1.1 KiB
Diff

From 174bd0c894d7197b386a677450d20b15d1b7d0e5 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 7 Jan 2017 15:41:58 -0500
Subject: [PATCH] Enforce Sync Player Saves
Saving players async is extremely dangerous. This will force it to main
the same way we handle async chunk loads.
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index efea22c92..91136a8d8 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -1249,6 +1249,7 @@ public abstract class PlayerList {
}
public void savePlayers(Integer interval) {
+ MCUtil.ensureMain("Save Players", () -> { // Paper - ensure main
long now = MinecraftServer.currentTick;
MinecraftTimings.savePlayers.startTiming(); // Paper
int numSaved = 0; // Paper
@@ -1260,6 +1261,7 @@ public abstract class PlayerList {
}
}
MinecraftTimings.savePlayers.stopTiming(); // Paper
+ return null; }); // Paper - ensure main
}
// Paper end
--
2.16.2