mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-16 21:20:43 +02:00
Add means to handle negative capabilities in thread safety annotations
This commit is contained in:
parent
45a6811d36
commit
f8213c05f0
@ -103,6 +103,12 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
using UniqueLock = std::unique_lock<PARENT>;
|
using UniqueLock = std::unique_lock<PARENT>;
|
||||||
|
#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 AnnotatedMixin& operator!() const { return *this; }
|
||||||
|
#endif // __clang__
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user