Browse Source

Merge pull request #1424 from TheBlueMatt/lockcontention

Fix DEBUG_LOCKCONTENTION
0.8
Pieter Wuille 13 years ago
parent
commit
1b7cd74a49
  1. 8
      src/sync.cpp
  2. 7
      src/sync.h

8
src/sync.cpp

@ -7,6 +7,14 @@ @@ -7,6 +7,14 @@
#include <boost/foreach.hpp>
#ifdef DEBUG_LOCKCONTENTION
void PrintLockContention(const char* pszName, const char* pszFile, int nLine)
{
printf("LOCKCONTENTION: %s\n", pszName);
printf("Locker: %s:%d\n", pszFile, nLine);
}
#endif /* DEBUG_LOCKCONTENTION */
#ifdef DEBUG_LOCKORDER
//
// Early deadlock detection.

7
src/sync.h

@ -27,6 +27,10 @@ void static inline EnterCritical(const char* pszName, const char* pszFile, int n @@ -27,6 +27,10 @@ void static inline EnterCritical(const char* pszName, const char* pszFile, int n
void static inline LeaveCritical() {}
#endif
#ifdef DEBUG_LOCKCONTENTION
void PrintLockContention(const char* pszName, const char* pszFile, int nLine);
#endif
/** Wrapper around boost::interprocess::scoped_lock */
template<typename Mutex>
class CMutexLock
@ -43,8 +47,7 @@ public: @@ -43,8 +47,7 @@ public:
#ifdef DEBUG_LOCKCONTENTION
if (!lock.try_lock())
{
printf("LOCKCONTENTION: %s\n", pszName);
printf("Locker: %s:%d\n", pszFile, nLine);
PrintLockContention(pszName, pszFile, nLine);
#endif
lock.lock();
#ifdef DEBUG_LOCKCONTENTION

Loading…
Cancel
Save