Skip to content

Commit 68dfb2f

Browse files
committed
Fix #51: Add thread safety to TrackingDebugSynchronizer
1 parent 6093e3e commit 68dfb2f

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
--- a/net/minecraft/util/debug/TrackingDebugSynchronizer.java
2+
+++ b/net/minecraft/util/debug/TrackingDebugSynchronizer.java
3+
@@ -7,6 +_,7 @@
4+
import java.util.Set;
5+
import java.util.UUID;
6+
import java.util.Map.Entry;
7+
+import java.util.concurrent.ConcurrentHashMap;
8+
import java.util.function.BiConsumer;
9+
import net.minecraft.core.BlockPos;
10+
import net.minecraft.core.SectionPos;
11+
@@ -27,7 +_,7 @@
12+
13+
public abstract class TrackingDebugSynchronizer<T> {
14+
protected final DebugSubscription<T> subscription;
15+
- private final Set<UUID> subscribedPlayers = new ObjectOpenHashSet<>();
16+
+ private final Set<UUID> subscribedPlayers = ConcurrentHashMap.newKeySet(); // ShreddedPaper - thread safety
17+
18+
public TrackingDebugSynchronizer(DebugSubscription<T> subscription) {
19+
this.subscription = subscription;
20+
@@ -137,9 +_,9 @@
21+
}
22+
23+
public static class SourceSynchronizer<T> extends TrackingDebugSynchronizer<T> {
24+
- private final Map<ChunkPos, TrackingDebugSynchronizer.ValueSource<T>> chunkSources = new HashMap<>();
25+
- private final Map<BlockPos, TrackingDebugSynchronizer.ValueSource<T>> blockEntitySources = new HashMap<>();
26+
- private final Map<UUID, TrackingDebugSynchronizer.ValueSource<T>> entitySources = new HashMap<>();
27+
+ private final Map<ChunkPos, TrackingDebugSynchronizer.ValueSource<T>> chunkSources = new ConcurrentHashMap<>(); // ShreddedPaper - thread safety
28+
+ private final Map<BlockPos, TrackingDebugSynchronizer.ValueSource<T>> blockEntitySources = new ConcurrentHashMap<>(); // ShreddedPaper - thread safety
29+
+ private final Map<UUID, TrackingDebugSynchronizer.ValueSource<T>> entitySources = new ConcurrentHashMap<>(); // ShreddedPaper - thread safety
30+
31+
public SourceSynchronizer(DebugSubscription<T> subscription) {
32+
super(subscription);

0 commit comments

Comments
 (0)