diff --git a/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java b/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java index 23877dc..6e5d638 100644 --- a/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java +++ b/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java @@ -215,9 +215,8 @@ } } - while(!toUpdate.isEmpty()) + for(Chunk chunk; (chunk = toUpdate.poll()) != null;) { - Chunk chunk = toUpdate.poll(); int key = ChunkHash.chunkToKey(chunk.xPosition, chunk.zPosition); if(sending.contains(key)) @@ -252,10 +251,8 @@ } } - while(!toUnload.isEmpty()) + for(Chunk chunk; (chunk = toUnload.poll()) != null;) { - Chunk chunk = toUnload.poll(); - PlayerManager.PlayerInstance pi = manager.getOrCreateChunkWatcher(chunk.xPosition, chunk.zPosition, false); if (pi == null) ((WorldServer)chunk.worldObj).theChunkProviderServer.unbindChunk(chunk); diff --git a/src/main/java/org/ultramine/server/util/TwoStepsExecutor.java b/src/main/java/org/ultramine/server/util/TwoStepsExecutor.java index 169785e..08e1d35 100644 --- a/src/main/java/org/ultramine/server/util/TwoStepsExecutor.java +++ b/src/main/java/org/ultramine/server/util/TwoStepsExecutor.java @@ -55,8 +55,8 @@ { if(e.phase == TickEvent.Phase.START) { - while(!queue.isEmpty()) - queue.poll().call(); + for(CallbackDataStruct toCall; (toCall = queue.poll()) != null;) + toCall.call(); } }