1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-06 09:09:40 +02:00

replace boost locks with std

This commit is contained in:
Laserlicht
2025-02-28 15:25:58 +01:00
parent 3fb9260f3b
commit 7dfb499edf
44 changed files with 148 additions and 147 deletions

View File

@@ -836,7 +836,7 @@ void AIGateway::makeTurn()
auto day = cb->getDate(Date::DAY);
logAi->info("Player %d (%s) starting turn, day %d", playerID, playerID.toString(), day);
boost::shared_lock gsLock(CGameState::mutex);
std::shared_lock gsLock(CGameState::mutex);
setThreadName("AIGateway::makeTurn");
if(nullkiller->isOpenMap())
@@ -1582,7 +1582,7 @@ void AIGateway::buildArmyIn(const CGTownInstance * t)
void AIGateway::finish()
{
//we want to lock to avoid multiple threads from calling makingTurn->join() at same time
boost::lock_guard<boost::mutex> multipleCleanupGuard(turnInterruptionMutex);
boost::lock_guard<std::mutex> multipleCleanupGuard(turnInterruptionMutex);
if(makingTurn)
{
@@ -1598,7 +1598,7 @@ void AIGateway::requestActionASAP(std::function<void()> whatToDo)
{
setThreadName("AIGateway::requestActionASAP::whatToDo");
SET_GLOBAL_STATE(this);
boost::shared_lock gsLock(CGameState::mutex);
std::shared_lock gsLock(CGameState::mutex);
whatToDo();
});
@@ -1670,7 +1670,7 @@ AIStatus::~AIStatus()
void AIStatus::setBattle(BattleState BS)
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
LOG_TRACE_PARAMS(logAi, "battle state=%d", (int)BS);
battle = BS;
cv.notify_all();
@@ -1678,7 +1678,7 @@ void AIStatus::setBattle(BattleState BS)
BattleState AIStatus::getBattle()
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
return battle;
}
@@ -1691,7 +1691,7 @@ void AIStatus::addQuery(QueryID ID, std::string description)
}
assert(ID.getNum() >= 0);
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
assert(!vstd::contains(remainingQueries, ID));
@@ -1703,7 +1703,7 @@ void AIStatus::addQuery(QueryID ID, std::string description)
void AIStatus::removeQuery(QueryID ID)
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
assert(vstd::contains(remainingQueries, ID));
std::string description = remainingQueries[ID];
@@ -1715,40 +1715,40 @@ void AIStatus::removeQuery(QueryID ID)
int AIStatus::getQueriesCount()
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
return static_cast<int>(remainingQueries.size());
}
void AIStatus::startedTurn()
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
havingTurn = true;
cv.notify_all();
}
void AIStatus::madeTurn()
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
havingTurn = false;
cv.notify_all();
}
void AIStatus::waitTillFree()
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
while(battle != NO_BATTLE || !remainingQueries.empty() || !objectsBeingVisited.empty() || ongoingHeroMovement)
cv.wait_for(lock, boost::chrono::milliseconds(10));
cv.wait_for(lock, std::chrono::milliseconds(10));
}
bool AIStatus::haveTurn()
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
return havingTurn;
}
void AIStatus::attemptedAnsweringQuery(QueryID queryID, int answerRequestID)
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
assert(vstd::contains(remainingQueries, queryID));
std::string description = remainingQueries[queryID];
logAi->debug("Attempted answering query %d - %s. Request id=%d. Waiting for results...", queryID, description, answerRequestID);
@@ -1775,7 +1775,7 @@ void AIStatus::receivedAnswerConfirmation(int answerRequestID, int result)
void AIStatus::heroVisit(const CGObjectInstance * obj, bool started)
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
if(started)
{
objectsBeingVisited.push_back(obj);
@@ -1793,14 +1793,14 @@ void AIStatus::heroVisit(const CGObjectInstance * obj, bool started)
void AIStatus::setMove(bool ongoing)
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
ongoingHeroMovement = ongoing;
cv.notify_all();
}
void AIStatus::setChannelProbing(bool ongoing)
{
boost::unique_lock<boost::mutex> lock(mx);
std::unique_lock<std::mutex> lock(mx);
ongoingChannelProbing = ongoing;
cv.notify_all();
}