forked from mirror/Folia
Make loadChunksAsync callback thread-safe
Need to perform synchronisation on the return list to avoid CMEs
This commit is contained in:
parent
57983f77f7
commit
b2d7bdb0bb
@ -0,0 +1,21 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
||||
Date: Tue, 25 Jul 2023 11:47:18 -0700
|
||||
Subject: [PATCH] Make loadChunksAsync callback thread-safe
|
||||
|
||||
Need to perform synchronisation on the return list to avoid CMEs
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 60b409e873d8f5d7975cce6e86ee2ed5525d348c..cf8f93734121e5c1959959f0ba13ee4e6db31959 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -347,7 +347,9 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
||||
java.util.function.Consumer<net.minecraft.world.level.chunk.ChunkAccess> consumer = (net.minecraft.world.level.chunk.ChunkAccess chunk) -> {
|
||||
if (chunk != null) {
|
||||
+ synchronized (ret) { // Folia - region threading - make callback thread-safe TODO rebase
|
||||
ret.add(chunk);
|
||||
+ } // Folia - region threading - make callback thread-safe TODO rebase
|
||||
chunkProvider.addTicketAtLevel(TicketType.FUTURE_AWAIT, chunk.getPos(), ticketLevel, holderIdentifier);
|
||||
}
|
||||
if (loadedChunks.incrementAndGet() == requiredChunks) {
|
Loading…
Reference in New Issue
Block a user