aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-07-05 13:28:09 +0200
committerShauren <shauren.trinity@gmail.com>2024-07-05 13:28:09 +0200
commitf895d04b7d6ee054e34cb7b87cb3b3762569bedc (patch)
tree7b0656528a2b2d4e34bfd0ba517fff127b817e74
parentc8a55f4a18052fa00e74a4fefdaf4a428252e1f9 (diff)
Core/Database: Fixed WITH_COREDEBUG + WITH_DYNAMIC_LINKING incompatibility on windows
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.cpp18
-rw-r--r--src/server/database/Database/DatabaseWorkerPool.h10
2 files changed, 20 insertions, 8 deletions
diff --git a/src/server/database/Database/DatabaseWorkerPool.cpp b/src/server/database/Database/DatabaseWorkerPool.cpp
index ad63678d367..41fe3028a05 100644
--- a/src/server/database/Database/DatabaseWorkerPool.cpp
+++ b/src/server/database/Database/DatabaseWorkerPool.cpp
@@ -51,6 +51,14 @@
#define MIN_MARIADB_CLIENT_VERSION 30003u
#define MIN_MARIADB_CLIENT_VERSION_STRING "3.0.3"
+namespace
+{
+#ifdef TRINITY_DEBUG
+template<typename Database>
+thread_local bool WarnSyncQueries = false;
+#endif
+}
+
template<typename T>
struct DatabaseWorkerPool<T>::QueueSizeTracker
{
@@ -426,6 +434,14 @@ void DatabaseWorkerPool<T>::KeepAlive()
}
}
+#ifdef TRINITY_DEBUG
+template <class T>
+void DatabaseWorkerPool<T>::WarnAboutSyncQueries([[maybe_unused]] bool warn)
+{
+ WarnSyncQueries<T> = warn;
+}
+#endif
+
template <class T>
uint32 DatabaseWorkerPool<T>::OpenConnections(InternalIndex type, uint8 numConnections)
{
@@ -485,7 +501,7 @@ template <class T>
T* DatabaseWorkerPool<T>::GetFreeConnection()
{
#ifdef TRINITY_DEBUG
- if (_warnSyncQueries)
+ if (WarnSyncQueries<T>)
{
std::ostringstream ss;
ss << boost::stacktrace::stacktrace();
diff --git a/src/server/database/Database/DatabaseWorkerPool.h b/src/server/database/Database/DatabaseWorkerPool.h
index 5bd3320f0ac..7e4ff9e1a6b 100644
--- a/src/server/database/Database/DatabaseWorkerPool.h
+++ b/src/server/database/Database/DatabaseWorkerPool.h
@@ -204,12 +204,11 @@ class DatabaseWorkerPool
//! Keeps all our MySQL connections alive, prevent the server from disconnecting us.
void KeepAlive();
- void WarnAboutSyncQueries([[maybe_unused]] bool warn)
- {
#ifdef TRINITY_DEBUG
- _warnSyncQueries = warn;
+ static void WarnAboutSyncQueries(bool warn);
+#else
+ static void WarnAboutSyncQueries([[maybe_unused]] bool warn) { }
#endif
- }
size_t QueueSize() const;
@@ -236,9 +235,6 @@ class DatabaseWorkerPool
std::unique_ptr<MySQLConnectionInfo> _connectionInfo;
std::vector<uint8> _preparedStatementSize;
uint8 _async_threads, _synch_threads;
-#ifdef TRINITY_DEBUG
- static inline thread_local bool _warnSyncQueries = false;
-#endif
};
#endif