From 15352a9302d3204be055748e6188318df1fef0ee Mon Sep 17 00:00:00 2001 From: Subv Date: Wed, 2 Jul 2014 18:38:22 -0500 Subject: Fixed an uninitialized value that made the MapUpdater worker threads exit on launch --- src/server/game/Maps/MapUpdater.cpp | 4 +++- src/server/game/Maps/MapUpdater.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/Maps/MapUpdater.cpp b/src/server/game/Maps/MapUpdater.cpp index 4ab95d87d48..0a007b3484e 100644 --- a/src/server/game/Maps/MapUpdater.cpp +++ b/src/server/game/Maps/MapUpdater.cpp @@ -45,7 +45,7 @@ class MapUpdateRequest } }; -MapUpdater::MapUpdater(): pending_requests(0) { } +MapUpdater::MapUpdater() : pending_requests(0), _cancelationToken(false) {} MapUpdater::~MapUpdater() { @@ -62,6 +62,8 @@ void MapUpdater::activate(size_t num_threads) void MapUpdater::deactivate() { + _cancelationToken = true; + wait(); _queue.Cancel(); diff --git a/src/server/game/Maps/MapUpdater.h b/src/server/game/Maps/MapUpdater.h index ff1d85a23e9..7b9c4443a54 100644 --- a/src/server/game/Maps/MapUpdater.h +++ b/src/server/game/Maps/MapUpdater.h @@ -51,7 +51,7 @@ class MapUpdater ProducerConsumerQueue _queue; std::vector _workerThreads; - std::atomic_bool _cancelationToken; + std::atomic _cancelationToken; std::mutex _lock; std::condition_variable _condition; -- cgit v1.2.3