µOS++ IIIe Reference 7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
os::estd::recursive_mutex Class Reference

#include <mutex>

+ Inheritance diagram for os::estd::recursive_mutex:

Public Types

using native_handle_type = native_type *
 

Public Member Functions

 recursive_mutex ()
 
 recursive_mutex (const recursive_mutex &)=delete
 
 ~recursive_mutex ()=default
 
void lock ()
 
native_handle_type native_handle ()
 
recursive_mutexoperator= (const recursive_mutex &)=delete
 
bool try_lock () noexcept
 
void unlock ()
 

Protected Attributes

native_type nm_
 

Private Types

using native_type = os::rtos::mutex
 

Detailed Description

Definition at line 94 of file mutex.

Member Typedef Documentation

◆ native_handle_type

◆ native_type

Definition at line 97 of file mutex.

Constructor & Destructor Documentation

◆ recursive_mutex() [1/2]

os::estd::recursive_mutex::recursive_mutex ( )
inline

Definition at line 194 of file mutex.

196 {
197 }
native_type nm_
Definition mutex:124
static const attributes_recursive initializer_recursive
Default recursive mutex initialiser.
Definition os-mutex.h:341

◆ ~recursive_mutex()

os::estd::recursive_mutex::~recursive_mutex ( )
default

◆ recursive_mutex() [2/2]

os::estd::recursive_mutex::recursive_mutex ( const recursive_mutex )
delete

Member Function Documentation

◆ lock()

void os::estd::recursive_mutex::lock ( )

Definition at line 74 of file mutex.cpp.

75 {
77 res = nm_.lock ();
78 if (res != os::rtos::result::ok)
79 {
80 os::estd::__throw_cmsis_error (static_cast<int> (res),
81 "recursive_mutex lock failed");
82 }
83 }
result_t lock(void)
Lock/acquire the mutex.
void __throw_cmsis_error(int ev, const char *what_arg)
@ ok
Function completed; no errors or events occurred.
Definition os-decls.h:179
uint32_t result_t
Type of values returned by RTOS functions.
Definition os-decls.h:95

References os::estd::__throw_cmsis_error(), os::rtos::mutex::lock(), nm_, and os::rtos::result::ok.

◆ native_handle()

recursive_mutex::native_handle_type os::estd::recursive_mutex::native_handle ( )
inline

Definition at line 200 of file mutex.

201 {
202 return &nm_;
203 }

References nm_.

◆ operator=()

recursive_mutex & os::estd::recursive_mutex::operator= ( const recursive_mutex )
delete

◆ try_lock()

bool os::estd::recursive_mutex::try_lock ( )
noexcept

Definition at line 86 of file mutex.cpp.

87 {
89 res = nm_.try_lock ();
90 if (res == os::rtos::result::ok)
91 {
92 return true;
93 }
94 else if (res == EWOULDBLOCK)
95 {
96 return false;
97 }
98
99 os::estd::__throw_cmsis_error (static_cast<int> (res),
100 "recursive_mutex try_lock failed");
101 // return false;
102 }
result_t try_lock(void)
Try to lock/acquire the mutex.

References os::estd::__throw_cmsis_error(), nm_, os::rtos::result::ok, and os::rtos::mutex::try_lock().

◆ unlock()

void os::estd::recursive_mutex::unlock ( )

Definition at line 105 of file mutex.cpp.

106 {
108 res = nm_.unlock ();
109 if (res != os::rtos::result::ok)
110 {
111 os::estd::__throw_cmsis_error (static_cast<int> (res),
112 "recursive_mutex unlock failed");
113 }
114 }
result_t unlock(void)
Unlock/release the mutex.

References os::estd::__throw_cmsis_error(), nm_, os::rtos::result::ok, and os::rtos::mutex::unlock().

Member Data Documentation

◆ nm_

native_type os::estd::recursive_mutex::nm_
protected

The documentation for this class was generated from the following files: