* For easier usage, the processes output it routed
correctly to the TC logger line by line now.
* Add support for asynchronous process execution
and process termination.
Fix wheaty exception report counting reference symbols as 2 nesting levels, not logging child objects in some cases, i.e. spell id in SpellEvent crash.
Fix Map::GetWaterOrGroundLevel() checking dynamic object only in phase 1 instead of current Unit phase.
Improve DynamicMapTree::getHeight() dynamic object check by casting the ray at +0.5f from the passed Z coordinate, this value will be tuned to improve even more the results.
* benefits from empty optimization (objects are only constructed if needed).
* supports r-value references (move semantics) (boost >= 1.56.0).
* preparation for c++14/17's std::optional and std::none_t.
* add move constructor to CompactArray.
(cherry picked from commit 800d5d893964a82265577d3352d683035b589f78)
Example: "Missing name Guild.SaveInterval in config file worldserver.conf, add "Guild.SaveInterval = 15" to this file"
(cherry picked from commit 06b3bca0d2bf6f049128da110681a5244d90225a)
# Conflicts:
# src/common/Configuration/Config.cpp
* Adds CMAKE_COMMAND and CMAKE_BINARY_DIR to revision_data.h
* Move the source and mysql exe path handling out of the DBUpdater.
* Make some Config methods const for correctness.
* Remove C & CXX flags from revision_data.h
(was unused and didn't capture all cxx vars)
* Reorder the link order to prevent `ld` from ignoring the file
* Ref #15671
(cherry picked from commit 719159e2074ac2d0902c70bdd3c7a39e0d311bbe)
Each network thread has its own io_service - this means that all operations on a given socket except queueing packets run from a single thread, removing the need for locking
Sending packets now writes to a lockfree intermediate queue directly, encryption is applied in network thread if it was required at the time of sending the packet
(cherry picked from commit 97a79af4701621ec04b88c8b548dbc35d120e99e)
(cherry picked from commit ae20b2ab561bc07d85f443ae914bc597c9d6ac6e)
(cherry picked from commit 921d893c2a82eb6ac0762bf7001df87911b44611)
(cherry picked from commit 9ab10d6e680ca835d1dfdfbceb9f18f330f994fc)
(cherry picked from commit 00c878e73a8c6b8ce3339d224ab5611df3bbd07c)
(cherry picked from commit ff9c999334d87acc3fcea9737753c30b7f1abe25)
(cherry picked from commit bc94bacce404401a480b6871eaa7bc38d766014c)
(cherry picked from commit d5b0ffbe9b0c07beb8d0dfc52a6532c2da805285)
Tiles which are owned by the mesh should have the DT_TILE_FREE_DATA flag to ensure
deallocation on removal from the mesh.
Log:
==23516== 6,181,976 bytes in 6 blocks are definitely lost in loss record 15 of 15
==23516== at 0x4C298A0: operator new[](unsigned long) (vg_replace_malloc.c:389)
==23516== by 0x2052660: dtCustomAlloc(int, dtAllocHint) (Memory.h:11)
==23516== by 0x29D7FDA: dtAlloc(int, dtAllocHint) (DetourAlloc.cpp:43)
==23516== by 0x230AA70: MMAP::MMapManager::loadMap(std::string const&, unsigned int, int, int) (MMapManager.cpp:166)
==23516== by 0x1DD585B: Map::LoadMMap(int, int) (Map.cpp:125)
==23516== by 0x1DD7266: Map::LoadMapAndVMap(int, int) (Map.cpp:200)
==23516== by 0x1DD93C6: Map::EnsureGridCreated_i(CoordPair<64u> const&) (Map.cpp:453)
==23516== by 0x1DD9129: Map::EnsureGridCreated(CoordPair<64u> const&) (Map.cpp:429)
==23516== by 0x1DED100: Map::GetGrid(float, float) (Map.cpp:2200)
==23516== by 0x1DE0F4C: Map::GetAreaFlag(float, float, float, bool*) const (Map.cpp:2349)
==23516== by 0x198521B: Map::GetZoneId(float, float, float) const (Map.h:353)
==23516== by 0x197CFF0: WorldObject::GetZoneId() const (Object.cpp:1277)
Phase tiles aren't managed by detour so they shouldn't be free'd automatically on removal.
See MMapManager::UnloadPhaseTile
(cherry picked from commit 32e8b6506fc064fdba134d692dfe99298e43f055)