diff options
author | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2020-05-18 17:45:46 +0300 |
---|---|---|
committer | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2020-05-19 01:14:07 +0300 |
commit | 58e6881bc5be002e8ddbc9b75422c0deae66a2df (patch) | |
tree | 3fbf313131c6feb325dd0110ee50de50bff0b933 /src | |
parent | f511f61dda4e860079153d5e51d64658cc265283 (diff) | |
download | bitcoin-58e6881bc5be002e8ddbc9b75422c0deae66a2df.tar.xz |
refactor: Refactor duplicated code into LockHeld()
Diffstat (limited to 'src')
-rw-r--r-- | src/sync.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/sync.cpp b/src/sync.cpp index cfbbb78c6b..5817e22c86 100644 --- a/src/sync.cpp +++ b/src/sync.cpp @@ -185,23 +185,27 @@ std::string LocksHeld() return result; } +static bool LockHeld(void* mutex) +{ + for (const LockStackItem& i : g_lockstack) { + if (i.first == mutex) return true; + } + + return false; +} + void AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, void* cs) { - for (const LockStackItem& i : g_lockstack) - if (i.first == cs) - return; + if (LockHeld(cs)) return; tfm::format(std::cerr, "Assertion failed: lock %s not held in %s:%i; locks held:\n%s", pszName, pszFile, nLine, LocksHeld()); abort(); } void AssertLockNotHeldInternal(const char* pszName, const char* pszFile, int nLine, void* cs) { - for (const LockStackItem& i : g_lockstack) { - if (i.first == cs) { - tfm::format(std::cerr, "Assertion failed: lock %s held in %s:%i; locks held:\n%s", pszName, pszFile, nLine, LocksHeld()); - abort(); - } - } + if (!LockHeld(cs)) return; + tfm::format(std::cerr, "Assertion failed: lock %s held in %s:%i; locks held:\n%s", pszName, pszFile, nLine, LocksHeld()); + abort(); } void DeleteLock(void* cs) |