18#include "pw_preprocessor/util.h"
19#include "pw_sync/lock_annotations.h"
23#include "pw_sync/virtual_basic_lockable.h"
24#include "pw_sync_backend/mutex_native.h"
42 using native_handle_type = backend::NativeMutexHandle;
69 [[nodiscard]] native_handle_type native_handle();
75 backend::NativeMutex& native_type() {
return native_type_; }
76 const backend::NativeMutex& native_type()
const {
return native_type_; }
80 backend::NativeMutex native_type_;
86 Mutex& mutex() {
return impl(); }
93#include "pw_sync_backend/mutex_inline.h"
Definition: virtual_basic_lockable.h:109
#define PW_LOCKABLE(name)
Definition: lock_annotations.h:208
bool pw_sync_Mutex_TryLock(pw_sync_Mutex *mutex)
Invokes the Mutex::try_lock member function on the given mutex.
#define PW_EXCLUSIVE_TRYLOCK_FUNCTION(...)
Definition: lock_annotations.h:260
#define PW_NO_LOCK_SAFETY_ANALYSIS
Definition: lock_annotations.h:292
#define PW_EXCLUSIVE_LOCK_FUNCTION(...)
Definition: lock_annotations.h:230
void pw_sync_Mutex_Unlock(pw_sync_Mutex *mutex)
Invokes the Mutex::unlock member function on the given mutex.
void pw_sync_Mutex_Lock(pw_sync_Mutex *mutex)
Invokes the Mutex::lock member function on the given mutex.
#define PW_UNLOCK_FUNCTION(...)
Definition: lock_annotations.h:247
Definition: binary_semaphore.h:26