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

Mutex robustness. More...

#include <cmsis-plus/rtos/os.h>

Public Types

enum  : robustness_t {
  stalled = 0 ,
  robust = 1 ,
  default_ = stalled ,
  max_ = robust
}
 Enumeration of mutex robustness. More...
 

Detailed Description

Allow to define the behaviour when the thread owning a mutex terminates.

The mutex robustness is defined via the mx_robustness attribute of the mutex::attributes class. Valid values are:

  • mutex::robustness::stalled

    No special actions are taken if the owner of the mutex is terminated while holding the mutex lock. This can lead to deadlocks if no other thread can unlock the mutex. This is the default value.

  • mutex::robustness::robust

    If the owning thread of a robust mutex terminates while holding the mutex lock, the next thread that acquires the mutex may be notified about the termination by the return value EOWNERDEAD. The notified thread can then attempt to mark the state protected by the mutex as consistent again by a call to mutex::consistent(). After a subsequent successful call to mutex::unlock(), the mutex lock shall be released and can be used normally by other threads. If the mutex is unlocked without a call to mutex::consistent(), it shall be in a permanently unusable state and all attempts to lock the mutex shall fail with the error ENOTRECOVERABLE. The only permissible operations on such a mutex are mutex::reset() and the mutex destruction.

POSIX compatibility
Inspired by pthread_mutexattr_setrobust() from <pthread.h> (IEEE Std 1003.1, 2013 Edition).

Definition at line 110 of file os-mutex.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : robustness_t
Enumerator
stalled 

Normal robustness.

robust 

Enhanced robustness at thread termination.

default_ 

Default value.

max_ 

Maximum value, for validation purposes.

Definition at line 115 of file os-mutex.h.

116 {
120 stalled = 0,
121
125 robust = 1,
126
131
135 max_ = robust
136 };
@ max_
Maximum value, for validation purposes.
Definition os-mutex.h:135
@ stalled
Normal robustness.
Definition os-mutex.h:120
@ default_
Default value.
Definition os-mutex.h:130
@ robust
Enhanced robustness at thread termination.
Definition os-mutex.h:125

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