Browse Source

Fix missing names for some threads

Ivan Savenko 8 months ago
parent
commit
5f052165fe

+ 1 - 1
AI/Nullkiller/AIGateway.cpp

@@ -833,13 +833,13 @@ bool AIGateway::makePossibleUpgrades(const CArmedInstance * obj)
 
 void AIGateway::makeTurn()
 {
+	setThreadName("AIGateway::makeTurn");
 	MAKING_TURN;
 
 	auto day = cb->getDate(Date::DAY);
 	logAi->info("Player %d (%s) starting turn, day %d", playerID, playerID.toString(), day);
 
 	std::shared_lock gsLock(CGameState::mutex);
-	setThreadName("AIGateway::makeTurn");
 
 	if(nullkiller->isOpenMap())
 	{

+ 1 - 1
client/CServerHandler.cpp

@@ -106,8 +106,8 @@ CServerHandler::CServerHandler()
 
 void CServerHandler::threadRunNetwork()
 {
-	logGlobal->info("Starting network thread");
 	setThreadName("runNetwork");
+	logGlobal->info("Starting network thread");
 	try {
 		networkHandler->run();
 	}

+ 0 - 1
clientapp/EntryPoint.cpp

@@ -448,7 +448,6 @@ static void mainLoop()
 	}
 
 	GAME.reset();
-	GAME->mainmenu().reset();
 
 	if(!settings["session"]["headless"].Bool())
 	{

+ 8 - 1
lib/CThreadHelper.cpp

@@ -19,6 +19,8 @@
 	#include <sys/prctl.h>
 #endif
 
+#include <tbb/task_arena.h>
+
 VCMI_LIB_NAMESPACE_BEGIN
 
 static thread_local std::string threadNameForLogging;
@@ -28,7 +30,12 @@ std::string getThreadName()
 	if (!threadNameForLogging.empty())
 		return threadNameForLogging;
 
-	return boost::lexical_cast<std::string>(std::this_thread::get_id());
+	int tbbIndex = tbb::this_task_arena::current_thread_index();
+
+	if (tbbIndex < 0)
+		return boost::lexical_cast<std::string>(std::this_thread::get_id());
+	else
+		return "TBB worker " + boost::lexical_cast<std::string>(tbbIndex);
 }
 
 void setThreadNameLoggingOnly(const std::string &name)

+ 0 - 4
lib/logging/CLogger.cpp

@@ -112,10 +112,6 @@ CLogger * CLogger::getLogger(const CLoggerDomain & domain)
 			logger->setLevel(ELogLevel::TRACE);
 		}
 		CLogManager::get().addLogger(logger);
-		if (logGlobal != nullptr)
-		{
-			logGlobal->debug("Created logger %s", domain.getName());
-		}
 	}
 	return logger;
 }

+ 2 - 0
server/CVCMIServer.cpp

@@ -16,6 +16,7 @@
 #include "processors/PlayerMessageProcessor.h"
 
 #include "../lib/CPlayerState.h"
+#include "../lib/CThreadHelper.h"
 #include "../lib/campaign/CampaignState.h"
 #include "../lib/entities/hero/CHeroHandler.h"
 #include "../lib/entities/hero/CHeroClass.h"
@@ -231,6 +232,7 @@ bool CVCMIServer::prepareToStartGame()
 
 	auto progressTrackingThread = std::thread([this, &progressTracking]()
 	{
+		setThreadName("progressTrackingThread");
 		auto currentProgress = std::numeric_limits<Load::Type>::max();
 
 		while(!progressTracking.finished())