Recursive Mutex for thread synchronization.
More...
Recursive Mutex for thread synchronization.
◆ RMUTEX_INIT
◆ rmutex_t
| typedef struct rmutex_t rmutex_t |
Mutex structure.
Must never be modified by the user.
◆ rmutex_init()
| static void rmutex_init |
( |
rmutex_t * | rmutex | ) |
|
|
inlinestatic |
Initializes a recursive mutex object.
For initialization of variables use RMUTEX_INIT instead. Only use the function call for dynamically allocated mutexes.
- Parameters
-
| [out] | rmutex | pre-allocated mutex structure, must not be NULL. |
Definition at line 71 of file rmutex.h.
◆ rmutex_lock()
Locks a recursive mutex, blocking.
- Parameters
-
| [in] | rmutex | Recursive mutex object to lock. Has to be initialized first. Must not be NULL. |
◆ rmutex_lock_max()
| int rmutex_lock_max |
( |
rmutex_t * | rmutex, |
|
|
uint16_t | max ) |
Tries to get a recursive mutex without exceeding a maximum recursion depth, blocking.
- Parameters
-
| [in] | rmutex | Recursive mutex object to lock. Has to be initialized first. Must not be NULL. |
| [in] | max | maximum recursion depth. |
- Return values
-
| 1 | if the mutex was unlocked, now it is locked. |
| 0 | if recursion depth was exceeded. |
◆ rmutex_trylock()
Tries to get a recursive mutex, non-blocking.
- Parameters
-
| [in] | rmutex | Recursive mutex object to lock. Has to be initialized first. Must not be NULL. |
- Return values
-
| 1 | if the mutex was unlocked or locked by same thread, it is locked now. |
| 0 | if the mutex was locked by another thread. |
◆ rmutex_trylock_max()
| int rmutex_trylock_max |
( |
rmutex_t * | rmutex, |
|
|
uint16_t | max ) |
Tries to get a recursive mutex without exceeding a maximum recursion depth, non-blocking.
- Parameters
-
| [in] | rmutex | Recursive mutex object to lock. Has to be initialized first. Must not be NULL. |
| [in] | max | maximum recursion depth, must be > 0. |
- Return values
-
| 1 | if the mutex was unlocked, now it is locked. |
| 0 | if the mutex was locked or the recursion depth has been exceeded. |
◆ rmutex_unlock()
Unlocks the recursive mutex.
- Parameters
-
| [in] | rmutex | Recursive mutex object to unlock, must not be NULL. |