Sfoglia il codice sorgente

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

Kolja Strohm 1 mese fa
parent
commit
09e2efddc9
1 ha cambiato i file con 3 aggiunte e 2 eliminazioni
  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();