From df9c46682799eaac8978f33602a476973756b3c3 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 4 Jun 2018 12:18:21 -0400 Subject: [PATCH] Avoid thread safety issues with objectIds #162 --- .../main/java/net/simon987/server/game/GameUniverse.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Server/src/main/java/net/simon987/server/game/GameUniverse.java b/Server/src/main/java/net/simon987/server/game/GameUniverse.java index 9eeec62..2076167 100644 --- a/Server/src/main/java/net/simon987/server/game/GameUniverse.java +++ b/Server/src/main/java/net/simon987/server/game/GameUniverse.java @@ -16,6 +16,7 @@ import org.bson.Document; import java.util.Collection; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; public class GameUniverse { @@ -30,7 +31,7 @@ public class GameUniverse { private long time; - private long nextObjectId = 0; + private AtomicLong nextObjectId = new AtomicLong(0); private int maxWidth = 0xFFFF; @@ -251,7 +252,7 @@ public class GameUniverse { } public long getNextObjectId() { - return ++nextObjectId; + return nextObjectId.getAndIncrement(); } public String getGuestUsername() { @@ -287,6 +288,6 @@ public class GameUniverse { } public void setNextObjectId(long nextObjectId) { - this.nextObjectId = nextObjectId; + this.nextObjectId.set(nextObjectId); } }