|
| 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