18#include "pw_sync/lock_annotations.h"
19#include "pw_sync/lock_traits.h"
42template <
typename BasicLockable>
45 static_assert(pw::sync::is_basic_lockable_v<BasicLockable>,
46 "lock type must satisfy BasicLockable");
55 ScopedLocker(BasicLockable& lock, std::defer_lock_t)
noexcept
57 : lock_(lock), locked_(
false) {}
Definition: scoped_locker.h:43
#define PW_GUARDED_BY(x)
Definition: lock_annotations.h:60
#define PW_EXCLUSIVE_LOCK_FUNCTION(...)
Definition: lock_annotations.h:230
#define PW_SCOPED_LOCKABLE
Definition: lock_annotations.h:221
#define PW_UNLOCK_FUNCTION(...)
Definition: lock_annotations.h:247
#define PW_LOCKS_EXCLUDED(...)
Definition: lock_annotations.h:176
The Pigweed namespace.
Definition: alignment.h:27