Correct the concurrent initialization pattern.

This commit is contained in:
Kristian S. Stangeland 2012-11-20 03:32:44 +01:00
parent 7b9d971238
commit 9170e48992

View File

@ -99,10 +99,14 @@ class PlayerSendingHandler {
// Safe concurrent initialization // Safe concurrent initialization
if (queues == null && createNew) { if (queues == null && createNew) {
QueueContainer previous = playerSendingQueues.putIfAbsent(name, new QueueContainer()); final QueueContainer newContainer = new QueueContainer();
// Attempt to map the queue
queues = playerSendingQueues.putIfAbsent(name, newContainer);
if (previous != null) if (queues == null) {
queues = previous; queues = newContainer;
}
} }
// Check for NULL again // Check for NULL again