mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 09:53:47 +01:00
sync: inline lock contention logging macro to fix time duration
Co-authored-by: Martin Ankerl <martin.ankerl@gmail.com>
This commit is contained in:
parent
6718fbe90a
commit
8d2f847ed9
@ -9,7 +9,6 @@
|
||||
#include <sync.h>
|
||||
|
||||
#include <logging.h>
|
||||
#include <logging/timer.h>
|
||||
#include <tinyformat.h>
|
||||
#include <util/strencodings.h>
|
||||
#include <util/threadnames.h>
|
||||
@ -24,11 +23,6 @@
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
void LockContention(const char* pszName, const char* pszFile, int nLine)
|
||||
{
|
||||
LOG_TIME_MICROS_WITH_CATEGORY(strprintf("%s, %s:%d", pszName, pszFile, nLine), BCLog::LOCK);
|
||||
}
|
||||
|
||||
#ifdef DEBUG_LOCKORDER
|
||||
//
|
||||
// Early deadlock detection.
|
||||
|
@ -6,6 +6,8 @@
|
||||
#ifndef BITCOIN_SYNC_H
|
||||
#define BITCOIN_SYNC_H
|
||||
|
||||
#include <logging.h>
|
||||
#include <logging/timer.h>
|
||||
#include <threadsafety.h>
|
||||
#include <util/macros.h>
|
||||
|
||||
@ -126,9 +128,6 @@ using RecursiveMutex = AnnotatedMixin<std::recursive_mutex>;
|
||||
/** Wrapped mutex: supports waiting but not recursive locking */
|
||||
typedef AnnotatedMixin<std::mutex> Mutex;
|
||||
|
||||
/** Prints a lock contention to the log */
|
||||
void LockContention(const char* pszName, const char* pszFile, int nLine);
|
||||
|
||||
/** Wrapper around std::unique_lock style lock for Mutex. */
|
||||
template <typename Mutex, typename Base = typename Mutex::UniqueLock>
|
||||
class SCOPED_LOCKABLE UniqueLock : public Base
|
||||
@ -138,7 +137,7 @@ private:
|
||||
{
|
||||
EnterCritical(pszName, pszFile, nLine, Base::mutex());
|
||||
if (Base::try_lock()) return;
|
||||
LockContention(pszName, pszFile, nLine); // log the contention
|
||||
LOG_TIME_MICROS_WITH_CATEGORY(strprintf("lock contention %s, %s:%d", pszName, pszFile, nLine), BCLog::LOCK);
|
||||
Base::lock();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user