Преглед изворни кода

fix deadlock of entity tick thread with client api call processing thread

Kolja Strohm пре 1 месец
родитељ
комит
09e2efddc9
1 измењених фајлова са 3 додато и 2 уклоњено
  1. 3 2
      FactoryCraft/InformationObserver.cpp

+ 3 - 2
FactoryCraft/InformationObserver.cpp

@@ -48,14 +48,15 @@ bool InformationObserver::sendMessage(NetworkMessage* message)
 
 void InformationObserver::setReady()
 {
+    Entity* e = Game::INSTANCE->zEntity(entityId);
     cs.lock();
     ready = 1;
-    Entity* e = Game::INSTANCE->zEntity(entityId);
     if (e)
     {
         for (NetworkMessage* msg : waitingMessages)
         {
-            Game::INSTANCE->sendMessage(dynamic_cast<NetworkMessage*>(msg->getThis()), e);
+            Game::INSTANCE->sendMessage(
+                dynamic_cast<NetworkMessage*>(msg->getThis()), e);
         }
     }
     waitingMessages.leeren();