µ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::mutex Class Reference

#include <mutex>

+ Inheritance diagram for os::estd::mutex:

Public Types

using native_handle_type = native_type *
 

Public Member Functions

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

Protected Attributes

native_type nm_
 

Private Types

using native_type = os::rtos::mutex
 

Detailed Description

Definition at line 58 of file mutex.

Member Typedef Documentation

◆ native_handle_type

Definition at line 64 of file mutex.

◆ native_type

Definition at line 61 of file mutex.

Constructor & Destructor Documentation

◆ mutex() [1/2]

os::estd::mutex::mutex ( )
inlinenoexcept

Definition at line 182 of file mutex.

183 {
184 }

◆ ~mutex()

os::estd::mutex::~mutex ( )
default

◆ mutex() [2/2]

os::estd::mutex::mutex ( const mutex )
delete

Member Function Documentation

◆ lock()

void os::estd::mutex::lock ( )

Definition at line 29 of file mutex.cpp.

30 {
32 res = nm_.lock ();
33 if (res != os::rtos::result::ok)
34 {
35 os::estd::__throw_cmsis_error (static_cast<int> (res),
36 "mutex lock failed");
37 }
38 }
native_type nm_
Definition mutex:89
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()

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

Definition at line 187 of file mutex.

188 {
189 return &nm_;
190 }

References nm_.

◆ operator=()

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

◆ try_lock()

bool os::estd::mutex::try_lock ( )

Definition at line 41 of file mutex.cpp.

42 {
44 res = nm_.try_lock ();
45 if (res == os::rtos::result::ok)
46 {
47 return true;
48 }
49 else if (res == EWOULDBLOCK)
50 {
51 return false;
52 }
53
54 os::estd::__throw_cmsis_error (static_cast<int> (res),
55 "mutex try_lock failed");
56 // return false;
57 }
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::mutex::unlock ( )

Definition at line 60 of file mutex.cpp.

61 {
63 res = nm_.unlock ();
64 if (res != os::rtos::result::ok)
65 {
66 os::estd::__throw_cmsis_error (static_cast<int> (res),
67 "mutex unlock failed");
68 }
69 }
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::mutex::nm_
protected

Definition at line 89 of file mutex.

Referenced by lock(), native_handle(), try_lock(), os::estd::timed_mutex::try_lock_for(), and unlock().


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