Mercurial > hg > bitcoin
changeset 1785:785b4766b44d draft
Merge branch 'lockcontention' of https://github.com/TheBlueMatt/bitcoin
author | Gavin Andresen <gavinandresen@gmail.com> |
---|---|
date | Mon, 23 Jan 2012 13:15:43 -0500 |
parents | f05defb6245e (current diff) c25505b7a486 (diff) |
children | 7b123f675f21 |
files | |
diffstat | 1 files changed, 22 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/util.cpp +++ b/src/util.cpp @@ -1153,7 +1153,18 @@ void CCriticalSection::Enter(const char* pszName, const char* pszFile, int nLine) { push_lock(this, CLockLocation(pszName, pszFile, nLine)); +#ifdef DEBUG_LOCKCONTENTION + bool result = mutex.try_lock(); + if (!result) + { + printf("LOCKCONTENTION: %s\n", pszName); + printf("Locker: %s:%d\n", pszFile, nLine); + mutex.lock(); + printf("Locked\n"); + } +#else mutex.lock(); +#endif } void CCriticalSection::Leave() { @@ -1170,9 +1181,19 @@ #else -void CCriticalSection::Enter(const char*, const char*, int) +void CCriticalSection::Enter(const char* pszName, const char* pszFile, int nLine) { +#ifdef DEBUG_LOCKCONTENTION + bool result = mutex.try_lock(); + if (!result) + { + printf("LOCKCONTENTION: %s\n", pszName); + printf("Locker: %s:%d\n", pszFile, nLine); + mutex.lock(); + } +#else mutex.lock(); +#endif } void CCriticalSection::Leave()