diff --git a/src/server/game/Maps/MapUpdater.cpp b/src/server/game/Maps/MapUpdater.cpp index 0f5b273cf..c7628df0b 100644 --- a/src/server/game/Maps/MapUpdater.cpp +++ b/src/server/game/Maps/MapUpdater.cpp @@ -67,6 +67,7 @@ MapUpdater::~MapUpdater() void MapUpdater::activate(size_t num_threads) { + _workerThreads.reserve(num_threads); for (size_t i = 0; i < num_threads; ++i) { _workerThreads.push_back(std::thread(&MapUpdater::WorkerThread, this)); @@ -83,7 +84,10 @@ void MapUpdater::deactivate() for (auto& thread : _workerThreads) { - thread.join(); + if (thread.joinable()) + { + thread.join(); + } } }