Use template function instead of void* parameter

This change gets rid of -Wthread-safety-attributes warning spam.
This commit is contained in:
Hennadii Stepanov
2020-05-28 09:55:04 +03:00
parent dfb75ae49d
commit 971a468ccf
2 changed files with 8 additions and 3 deletions

View File

@@ -219,12 +219,15 @@ static bool LockHeld(void* mutex)
return false;
}
void AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, void* cs)
template <typename MutexType>
void AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, MutexType* cs)
{
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();
}
template void AssertLockHeldInternal(const char*, const char*, int, Mutex*);
template void AssertLockHeldInternal(const char*, const char*, int, RecursiveMutex*);
void AssertLockNotHeldInternal(const char* pszName, const char* pszFile, int nLine, void* cs)
{