aboutsummaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2014-07-25 19:35:11 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2014-07-25 19:35:11 +0200
commit5a8e79528f06d8dabe1d038d8e079be29adf7e1e (patch)
tree42f171161adb381638f7ab1c6261f9501f1f3512 /src/tools
parent339574e2fdcd654280cd06a38466cab44eab5133 (diff)
parentc60bdec16046c0bb908e84039f8b1c22368363bd (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/mmaps_generator/CMakeLists.txt1
-rw-r--r--src/tools/mmaps_generator/MapBuilder.cpp19
-rw-r--r--src/tools/mmaps_generator/MapBuilder.h2
3 files changed, 14 insertions, 8 deletions
diff --git a/src/tools/mmaps_generator/CMakeLists.txt b/src/tools/mmaps_generator/CMakeLists.txt
index a2b729ca998..8661c035c8e 100644
--- a/src/tools/mmaps_generator/CMakeLists.txt
+++ b/src/tools/mmaps_generator/CMakeLists.txt
@@ -48,6 +48,7 @@ target_link_libraries(mmaps_generator
Detour
${BZIP2_LIBRARIES}
${ZLIB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
${Boost_LIBRARIES}
)
diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp
index 01a342249fd..94b5f3607cf 100644
--- a/src/tools/mmaps_generator/MapBuilder.cpp
+++ b/src/tools/mmaps_generator/MapBuilder.cpp
@@ -171,20 +171,25 @@ namespace MMAP
{
while (1)
{
- uint32 mapId;
+ uint32* mapId = nullptr;
_queue.WaitAndPop(mapId);
if (_cancelationToken)
return;
- buildMap(mapId);
+ if (!mapId) // shouldn't happen?
+ continue;
+
+ buildMap(*mapId);
+
+ delete mapId;
}
}
void MapBuilder::buildAllMaps(int threads)
{
- for (size_t i = 0; i < threads; ++i)
+ for (int i = 0; i < threads; ++i)
{
_workerThreads.push_back(std::thread(&MapBuilder::WorkerThread, this));
}
@@ -196,13 +201,13 @@ namespace MMAP
for (TileList::iterator it = m_tiles.begin(); it != m_tiles.end(); ++it)
{
- uint32 mapID = it->m_mapId;
- if (!shouldSkipMap(mapID))
+ uint32 mapId = it->m_mapId;
+ if (!shouldSkipMap(mapId))
{
if (threads > 0)
- _queue.Push(mapID);
+ _queue.Push(new uint32(mapId));
else
- buildMap(mapID);
+ buildMap(mapId);
}
}
diff --git a/src/tools/mmaps_generator/MapBuilder.h b/src/tools/mmaps_generator/MapBuilder.h
index 1d688ccfa77..c2168d048b4 100644
--- a/src/tools/mmaps_generator/MapBuilder.h
+++ b/src/tools/mmaps_generator/MapBuilder.h
@@ -143,7 +143,7 @@ namespace MMAP
rcContext* m_rcContext;
std::vector<std::thread> _workerThreads;
- ProducerConsumerQueue<uint32> _queue;
+ ProducerConsumerQueue<uint32*> _queue;
std::atomic<bool> _cancelationToken;
};
}