diff options
Diffstat (limited to 'src/server/database/Database/Transaction.cpp')
-rw-r--r-- | src/server/database/Database/Transaction.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/server/database/Database/Transaction.cpp b/src/server/database/Database/Transaction.cpp index 3dc0b6e01ec..0bcc905e59f 100644 --- a/src/server/database/Database/Transaction.cpp +++ b/src/server/database/Database/Transaction.cpp @@ -77,9 +77,13 @@ bool TransactionTask::Execute() if (errorCode == ER_LOCK_DEADLOCK) { - std::ostringstream threadIdStream; - threadIdStream << std::this_thread::get_id(); - std::string threadId = threadIdStream.str(); + std::string threadId = []() + { + // wrapped in lambda to fix false positive analysis warning C26115 + std::ostringstream threadIdStream; + threadIdStream << std::this_thread::get_id(); + return threadIdStream.str(); + }(); // Make sure only 1 async thread retries a transaction so they don't keep dead-locking each other std::lock_guard<std::mutex> lock(_deadlockLock); @@ -122,9 +126,13 @@ bool TransactionWithResultTask::Execute() if (errorCode == ER_LOCK_DEADLOCK) { - std::ostringstream threadIdStream; - threadIdStream << std::this_thread::get_id(); - std::string threadId = threadIdStream.str(); + std::string threadId = []() + { + // wrapped in lambda to fix false positive analysis warning C26115 + std::ostringstream threadIdStream; + threadIdStream << std::this_thread::get_id(); + return threadIdStream.str(); + }(); // Make sure only 1 async thread retries a transaction so they don't keep dead-locking each other std::lock_guard<std::mutex> lock(_deadlockLock); |