|
|
@ -60,6 +60,13 @@
|
|
|
|
// and should only be used when sync.h Mutex/LOCK/etc are not usable.
|
|
|
|
// and should only be used when sync.h Mutex/LOCK/etc are not usable.
|
|
|
|
class LOCKABLE StdMutex : public std::mutex
|
|
|
|
class LOCKABLE StdMutex : public std::mutex
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
#ifdef __clang__
|
|
|
|
|
|
|
|
//! For negative capabilities in the Clang Thread Safety Analysis.
|
|
|
|
|
|
|
|
//! A negative requirement uses the EXCLUSIVE_LOCKS_REQUIRED attribute, in conjunction
|
|
|
|
|
|
|
|
//! with the ! operator, to indicate that a mutex should not be held.
|
|
|
|
|
|
|
|
const StdMutex& operator!() const { return *this; }
|
|
|
|
|
|
|
|
#endif // __clang__
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// StdLockGuard provides an annotated version of std::lock_guard for us,
|
|
|
|
// StdLockGuard provides an annotated version of std::lock_guard for us,
|
|
|
|