Async PathProcessing
This commit is contained in:
@@ -53,7 +53,7 @@ subprojects {
|
|||||||
|
|
||||||
tasks {
|
tasks {
|
||||||
withType<JavaCompile>().configureEach {
|
withType<JavaCompile>().configureEach {
|
||||||
options.compilerArgs.add("--add-modules=jdk.incubator.vector")
|
options.compilerArgs.addAll(listOf("--add-modules=jdk.incubator.vector", "-Xmaxwarns", "1"))
|
||||||
options.encoding = Charsets.UTF_8.name()
|
options.encoding = Charsets.UTF_8.name()
|
||||||
options.release.set(17)
|
options.release.set(17)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
|
||||||
Date: Wed, 10 Jan 2024 17:49:55 +0900
|
|
||||||
Subject: [PATCH] Save Json list asynchronously
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java
|
|
||||||
index 34b7c5421da93f14050425b0fc16bbc27e5f3eba..b3d4f579fab96f572811ed0e33ecbb5204475391 100644
|
|
||||||
--- a/src/main/java/net/minecraft/server/players/StoredUserList.java
|
|
||||||
+++ b/src/main/java/net/minecraft/server/players/StoredUserList.java
|
|
||||||
@@ -142,7 +142,10 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
|
|
||||||
return this.map.values();
|
|
||||||
}
|
|
||||||
|
|
||||||
- public void save() throws IOException {
|
|
||||||
+ // Plazma start - Save Json list asynchronously
|
|
||||||
+ public void save()/* throws IOException*/ {
|
|
||||||
+ io.papermc.paper.util.MCUtil.scheduleAsyncTask(() -> {
|
|
||||||
+
|
|
||||||
this.removeExpired(); // Paper - remove expired values before saving
|
|
||||||
JsonArray jsonarray = new JsonArray();
|
|
||||||
Stream<JsonObject> stream = this.map.values().stream().map((jsonlistentry) -> { // CraftBukkit - decompile error
|
|
||||||
@@ -154,27 +157,16 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
|
|
||||||
|
|
||||||
Objects.requireNonNull(jsonarray);
|
|
||||||
stream.forEach(jsonarray::add);
|
|
||||||
- BufferedWriter bufferedwriter = Files.newWriter(this.file, StandardCharsets.UTF_8);
|
|
||||||
|
|
||||||
- try {
|
|
||||||
+ try (BufferedWriter bufferedwriter = Files.newWriter(this.file, StandardCharsets.UTF_8)) {
|
|
||||||
StoredUserList.GSON.toJson(jsonarray, bufferedwriter);
|
|
||||||
- } catch (Throwable throwable) {
|
|
||||||
- if (bufferedwriter != null) {
|
|
||||||
- try {
|
|
||||||
- bufferedwriter.close();
|
|
||||||
- } catch (Throwable throwable1) {
|
|
||||||
- throwable.addSuppressed(throwable1);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- throw throwable;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (bufferedwriter != null) {
|
|
||||||
- bufferedwriter.close();
|
|
||||||
+ } catch (IOException e) {
|
|
||||||
+ StoredUserList.LOGGER.warn("Failed to asynchronously save file " + this.file, e);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ });
|
|
||||||
}
|
|
||||||
+ // Plazma end
|
|
||||||
|
|
||||||
public void load() throws IOException {
|
|
||||||
if (this.file.exists()) {
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Thu, 11 Jan 2024 00:03:20 +0900
|
Date: Thu, 11 Jan 2024 13:40:41 +0900
|
||||||
Subject: [PATCH] Fix build
|
Subject: [PATCH] Save Json list asynchronously
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java b/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java b/src/main/java/net/minecraft/server/dedicated/DedicatedPlayerList.java
|
||||||
@@ -36,7 +36,7 @@ index 935dac757280731bfeb0a8f033cbe315ecac46da..038f370ac2cb768e14fe7605b32b2ac8
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java
|
diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java
|
||||||
index b3d4f579fab96f572811ed0e33ecbb5204475391..a35340b9231bc3009ca9449fa6ea8f8ae6929146 100644
|
index 34b7c5421da93f14050425b0fc16bbc27e5f3eba..a35340b9231bc3009ca9449fa6ea8f8ae6929146 100644
|
||||||
--- a/src/main/java/net/minecraft/server/players/StoredUserList.java
|
--- a/src/main/java/net/minecraft/server/players/StoredUserList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/players/StoredUserList.java
|
+++ b/src/main/java/net/minecraft/server/players/StoredUserList.java
|
||||||
@@ -61,11 +61,11 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
|
@@ -61,11 +61,11 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
|
||||||
@@ -69,3 +69,48 @@ index b3d4f579fab96f572811ed0e33ecbb5204475391..a35340b9231bc3009ca9449fa6ea8f8a
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -142,7 +142,10 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
|
||||||
|
return this.map.values();
|
||||||
|
}
|
||||||
|
|
||||||
|
- public void save() throws IOException {
|
||||||
|
+ // Plazma start - Save Json list asynchronously
|
||||||
|
+ public void save()/* throws IOException*/ {
|
||||||
|
+ io.papermc.paper.util.MCUtil.scheduleAsyncTask(() -> {
|
||||||
|
+
|
||||||
|
this.removeExpired(); // Paper - remove expired values before saving
|
||||||
|
JsonArray jsonarray = new JsonArray();
|
||||||
|
Stream<JsonObject> stream = this.map.values().stream().map((jsonlistentry) -> { // CraftBukkit - decompile error
|
||||||
|
@@ -154,27 +157,16 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
|
||||||
|
|
||||||
|
Objects.requireNonNull(jsonarray);
|
||||||
|
stream.forEach(jsonarray::add);
|
||||||
|
- BufferedWriter bufferedwriter = Files.newWriter(this.file, StandardCharsets.UTF_8);
|
||||||
|
|
||||||
|
- try {
|
||||||
|
+ try (BufferedWriter bufferedwriter = Files.newWriter(this.file, StandardCharsets.UTF_8)) {
|
||||||
|
StoredUserList.GSON.toJson(jsonarray, bufferedwriter);
|
||||||
|
- } catch (Throwable throwable) {
|
||||||
|
- if (bufferedwriter != null) {
|
||||||
|
- try {
|
||||||
|
- bufferedwriter.close();
|
||||||
|
- } catch (Throwable throwable1) {
|
||||||
|
- throwable.addSuppressed(throwable1);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- throw throwable;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (bufferedwriter != null) {
|
||||||
|
- bufferedwriter.close();
|
||||||
|
+ } catch (IOException e) {
|
||||||
|
+ StoredUserList.LOGGER.warn("Failed to asynchronously save file " + this.file, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ });
|
||||||
|
}
|
||||||
|
+ // Plazma end
|
||||||
|
|
||||||
|
public void load() throws IOException {
|
||||||
|
if (this.file.exists()) {
|
||||||
1178
patches/server/0038-Async-PathProcessing.patch
Normal file
1178
patches/server/0038-Async-PathProcessing.patch
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user