1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-03-31 09:06:40 +00:00

Add missing synchronization for present tiles modification

insert/erase can be done from multiple threads simultaneously. mMutex is
already used to synchronize reads so use it for writes too.
This commit is contained in:
elsid 2021-05-17 17:44:26 +02:00
parent f1f1703441
commit a73ffc25c3
No known key found for this signature in database
GPG key ID: B845CB9FEE18AB40

View file

@ -298,9 +298,15 @@ namespace DetourNavigator
}
if (status == UpdateNavMeshStatus::removed || status == UpdateNavMeshStatus::lost)
{
const std::scoped_lock lock(mMutex);
mPresentTiles.erase(std::make_tuple(job.mAgentHalfExtents, job.mChangedTile));
}
else if (isSuccess(status) && status != UpdateNavMeshStatus::ignored)
{
const std::scoped_lock lock(mMutex);
mPresentTiles.insert(std::make_tuple(job.mAgentHalfExtents, job.mChangedTile));
}
const auto finish = std::chrono::steady_clock::now();