Skip to content

Commit

Permalink
MOVEONLY Move AnnotatedMixin declaration
Browse files Browse the repository at this point in the history
Move AnnotatedMixin closer to where it's used, and after the DEBUG_LOCKORDER
function declarations so it can call them.
  • Loading branch information
ryanofsky committed Aug 3, 2018
1 parent 41b88e9 commit ba1f095
Showing 1 changed file with 24 additions and 24 deletions.
48 changes: 24 additions & 24 deletions src/sync.h
Expand Up @@ -46,30 +46,6 @@ LEAVE_CRITICAL_SECTION(mutex); // no RAII
// //
///////////////////////////////

/**
* Template mixin that adds -Wthread-safety locking
* annotations to a subset of the mutex API.
*/
template <typename PARENT>
class LOCKABLE AnnotatedMixin : public PARENT
{
public:
void lock() EXCLUSIVE_LOCK_FUNCTION()
{
PARENT::lock();
}

void unlock() UNLOCK_FUNCTION()
{
PARENT::unlock();
}

bool try_lock() EXCLUSIVE_TRYLOCK_FUNCTION(true)
{
return PARENT::try_lock();
}
};

#ifdef DEBUG_LOCKORDER
void EnterCritical(const char* pszName, const char* pszFile, int nLine, void* cs, bool fTry = false);
void LeaveCritical();
Expand All @@ -94,6 +70,30 @@ void static inline DeleteLock(void* cs) {}
#define AssertLockHeld(cs) AssertLockHeldInternal(#cs, __FILE__, __LINE__, &cs)
#define AssertLockNotHeld(cs) AssertLockNotHeldInternal(#cs, __FILE__, __LINE__, &cs)

/**
* Template mixin that adds -Wthread-safety locking
* annotations to a subset of the mutex API.
*/
template <typename PARENT>
class LOCKABLE AnnotatedMixin : public PARENT
{
public:
void lock() EXCLUSIVE_LOCK_FUNCTION()
{
PARENT::lock();
}

void unlock() UNLOCK_FUNCTION()
{
PARENT::unlock();
}

bool try_lock() EXCLUSIVE_TRYLOCK_FUNCTION(true)
{
return PARENT::try_lock();
}
};

/**
* Wrapped mutex: supports recursive locking, but no waiting
* TODO: We should move away from using the recursive lock by default.
Expand Down

0 comments on commit ba1f095

Please sign in to comment.