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

Do not use locks on single-threaded server.

Especially since this lock is global and is shared between client and
server for no reason
Ivan Savenko пре 1 година
родитељ
комит
93da58beed
2 измењених фајлова са 4 додато и 3 уклоњено
  1. 4 1
      client/Client.cpp
  2. 0 2
      lib/gameState/CGameState.cpp

+ 4 - 1
client/Client.cpp

@@ -519,7 +519,10 @@ void CClient::handlePack(CPack * pack)
 	{
 		apply->applyOnClBefore(this, pack);
 		logNetwork->trace("\tMade first apply on cl: %s", typeid(*pack).name());
-		gs->apply(pack);
+		{
+			boost::unique_lock<boost::shared_mutex> lock(CGameState::mutex);
+			gs->apply(pack);
+		}
 		logNetwork->trace("\tApplied on gs: %s", typeid(*pack).name());
 		apply->applyOnClAfter(this, pack);
 		logNetwork->trace("\tMade second apply on cl: %s", typeid(*pack).name());

+ 0 - 2
lib/gameState/CGameState.cpp

@@ -75,8 +75,6 @@ public:
 	void applyOnGS(CGameState *gs, CPack * pack) const override
 	{
 		T *ptr = static_cast<T*>(pack);
-
-		boost::unique_lock<boost::shared_mutex> lock(CGameState::mutex);
 		ptr->applyGs(gs);
 	}
 };