diff --git a/sources/src/main/java/net/minecraft/server/EntityTracker.java b/sources/src/main/java/net/minecraft/server/EntityTracker.java index 6e4501355..273e6ceab 100644 --- a/sources/src/main/java/net/minecraft/server/EntityTracker.java +++ b/sources/src/main/java/net/minecraft/server/EntityTracker.java @@ -7,6 +7,9 @@ import com.googlecode.concurentlocks.ReentrantReadWriteUpdateLock; import java.util.ArrayList; import java.util.Iterator; import java.util.Set; + +import javax.annotation.concurrent.ThreadSafe; + import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -14,6 +17,7 @@ import org.apache.logging.log4j.Logger; * Akarin Changes Note * 1) Made collections and entry access thread-safe (safety issue) */ +@ThreadSafe // Akarin public class EntityTracker { private static final Logger a = LogManager.getLogger(); @@ -21,7 +25,7 @@ public class EntityTracker { private final Set c = Sets.newHashSet(); public final ReentrantReadWriteUpdateLock entriesLock = new ReentrantReadWriteUpdateLock(); // Akarin - add lock public final IntHashMap trackedEntities = new IntHashMap(); - private int e; + private volatile int e; // Akarin - volatile public EntityTracker(WorldServer worldserver) { this.world = worldserver; diff --git a/sources/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/sources/src/main/java/net/minecraft/server/EntityTrackerEntry.java index 5e946cfca..b286babfc 100644 --- a/sources/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/sources/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -22,7 +22,7 @@ public class EntityTrackerEntry { private static final Logger c = LogManager.getLogger(); private final Entity tracker; private final int e; - private volatile int f; // Akarin + private volatile int f; // Akarin - volatile private final int g; private long xLoc; private long yLoc; diff --git a/sources/src/main/java/net/minecraft/server/PlayerChunkMap.java b/sources/src/main/java/net/minecraft/server/PlayerChunkMap.java index d0001b133..fdeb2585c 100644 --- a/sources/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/sources/src/main/java/net/minecraft/server/PlayerChunkMap.java @@ -503,12 +503,12 @@ public class PlayerChunkMap { } public synchronized void a(PlayerChunk playerchunk) { // Akarin - synchronized - org.spigotmc.AsyncCatcher.catchOp("Async Player Chunk Add"); // Paper // Akarin + // org.spigotmc.AsyncCatcher.catchOp("Async Player Chunk Add"); // Paper // Akarin this.f.add(playerchunk); } public synchronized void b(PlayerChunk playerchunk) { // Akarin - synchronized - // org.spigotmc.AsyncCatcher.catchOp("Async Player Chunk Remove"); // Paper // Akarin + org.spigotmc.AsyncCatcher.catchOp("Async Player Chunk Remove"); // Paper ChunkCoordIntPair chunkcoordintpair = playerchunk.a(); long i = d(chunkcoordintpair.x, chunkcoordintpair.z);