sync change for memory
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
This commit is contained in:
parent
d650d223a8
commit
483ff9b8d1
@ -2123,6 +2123,7 @@ Physics work
|
||||
Debug rendering for facing vectors
|
||||
Fix progressive pathfinding iteration
|
||||
Non-body ground movement animation work
|
||||
Synchronization change for memory pressure
|
||||
|
||||
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
import electrosphere.engine.Globals;
|
||||
import electrosphere.entity.Entity;
|
||||
@ -53,7 +53,7 @@ public class ClientSynchronizationManager {
|
||||
/**
|
||||
* The list of messages to loop through
|
||||
*/
|
||||
private List<SynchronizationMessage> messages = new CopyOnWriteArrayList<SynchronizationMessage>();
|
||||
private List<SynchronizationMessage> messages = new LinkedList<SynchronizationMessage>();
|
||||
|
||||
/**
|
||||
* Map that tracks the number of times a network message bounces
|
||||
@ -65,18 +65,26 @@ public class ClientSynchronizationManager {
|
||||
*/
|
||||
private Map<Integer,Integer> deletedEntityIds = new HashMap<Integer,Integer>();
|
||||
|
||||
/**
|
||||
* Lock for thread-safeing the manager
|
||||
*/
|
||||
private ReentrantLock lock = new ReentrantLock();
|
||||
|
||||
/**
|
||||
* Pushes a message into the queue to be processed
|
||||
* @param message The message
|
||||
*/
|
||||
public void pushMessage(SynchronizationMessage message){
|
||||
lock.lock();
|
||||
this.messages.add(message);
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes all messages in the queue and then clears the queue
|
||||
*/
|
||||
public void processMessages(){
|
||||
lock.lock();
|
||||
List<SynchronizationMessage> messagesToClear = new LinkedList<SynchronizationMessage>();
|
||||
for(SynchronizationMessage message : messages){
|
||||
|
||||
@ -197,6 +205,7 @@ public class ClientSynchronizationManager {
|
||||
this.deletedEntityIds.remove(key);
|
||||
}
|
||||
}
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user