[Database] Address deadlock in player events (#2974)

* DB mutex testing

* Mutex tweaks, native string escaping
This commit is contained in:
Chris Miles
2023-02-20 22:32:29 -06:00
committed by GitHub
parent 6a668f8aa5
commit 33bb5aa8e5
4 changed files with 27 additions and 14 deletions
+4
View File
@@ -12,6 +12,7 @@
#include <mysql.h>
#include <string.h>
#include <mutex>
class DBcore {
public:
@@ -27,6 +28,7 @@ public:
void TransactionBegin();
void TransactionCommit();
void TransactionRollback();
std::string Escape(const std::string& s);
uint32 DoEscapeString(char *tobuf, const char *frombuf, uint32 fromlen);
void ping();
MYSQL *getMySQL() { return &mysql; }
@@ -57,6 +59,8 @@ private:
Mutex MDatabase;
eStatus pStatus;
std::mutex m_query_lock{};
std::string origin_host;
char *pHost;