From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 16 May 2016 20:47:41 -0400 Subject: [PATCH] Optimize UserCache / Thread Safe Because Techable keeps complaining about how this isn't thread safe, easier to do this than replace the entire thing. Additionally, move Saving of the User cache to be done async, incase the user never changed the default setting for Spigot's save on stop only. diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java index 36be0b4516702e0760ba6262a8c894fafbf276b4..56a3ef812966f9dce9c53b105a56e1761cdb467b 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -212,7 +212,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer } if (this.convertNames()) { - this.getUserCache().b(); + this.getUserCache().b(false); // Paper } if (!NameReferencingFileConverter.e(this)) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index ad02086e71070eced13e17fbbee204020db4fed7..b9e757b94d7c00b8bea23102417b2afbe7eccd7a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -786,7 +786,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { // Paper try { BufferedWriter bufferedwriter = Files.newWriter(this.g, StandardCharsets.UTF_8); @@ -266,6 +267,14 @@ public class UserCache { } catch (IOException ioexception) { ; } + // Paper start + }; + if (asyncSave) { + MCUtil.scheduleAsyncTask(save); + } else { + save.run(); + } + // Paper end }