Explorar o código

BattleAI: missing lock

Andrii Danylchenko hai 1 ano
pai
achega
07ae33b8f4
Modificáronse 1 ficheiros con 6 adicións e 1 borrados
  1. 6 1
      AI/Nullkiller/Goals/RecruitHero.cpp

+ 6 - 1
AI/Nullkiller/Goals/RecruitHero.cpp

@@ -68,7 +68,12 @@ void RecruitHero::accept(AIGateway * ai)
 		throw cannotFulfillGoalException("Town " + t->nodeName() + " is occupied. Cannot recruit hero!");
 		throw cannotFulfillGoalException("Town " + t->nodeName() + " is occupied. Cannot recruit hero!");
 
 
 	cb->recruitHero(t, heroToHire);
 	cb->recruitHero(t, heroToHire);
-	ai->nullkiller->heroManager->update();
+
+	{
+		std::unique_lock lockGuard(ai->nullkiller->aiStateMutex);
+
+		ai->nullkiller->heroManager->update();
+	}
 
 
 	if(t->visitingHero)
 	if(t->visitingHero)
 		ai->moveHeroToTile(t->visitablePos(), t->visitingHero.get());
 		ai->moveHeroToTile(t->visitablePos(), t->visitingHero.get());