Mistake on this page?
Report an issue in GitHub or email us
Data Structures | Functions
Mutex class

Data Structures

class  Mutex
 The Mutex class is used to synchronize the execution of threads. More...
 

Functions

 Mutex ()
 Create and Initialize a Mutex object. More...
 
 Mutex (const char *name)
 Create and Initialize a Mutex object. More...
 
 ~Mutex ()
 Mutex destructor. More...
 
void lock ()
 Wait until a Mutex becomes available. More...
 
bool trylock ()
 Try to lock the mutex, and return immediately. More...
 
bool trylock_for (uint32_t millisec)
 Try to lock the mutex for a specified time. More...
 
bool trylock_until (uint64_t millisec)
 Try to lock the mutex until specified time. More...
 
void unlock ()
 Unlock the mutex that has previously been locked by the same thread. More...
 

Detailed Description

Function Documentation

void lock ( void  )

Wait until a Mutex becomes available.

Returns
status code that indicates the execution status of the function: osOK the mutex has been obtained.
Note
You cannot call this function from ISR context.
This function treats RTOS errors as fatal system errors, so it can only return osOK. Use of the return value is deprecated, as the return is expected to become void in the future.

Definition at line 202 of file Mutex.h.

Mutex ( )

Create and Initialize a Mutex object.

Note
You cannot call this function from ISR context.

Definition at line 190 of file Mutex.h.

Mutex ( const char *  name)

Create and Initialize a Mutex object.

Parameters
namename to be used for this mutex. It has to stay allocated for the lifetime of the thread.
Note
You cannot call this function from ISR context.

Definition at line 194 of file Mutex.h.

bool trylock ( )

Try to lock the mutex, and return immediately.

Returns
true if the mutex was acquired, false otherwise.
Note
equivalent to trylock_for(0)
You cannot call this function from ISR context.

Definition at line 206 of file Mutex.h.

bool trylock_for ( uint32_t  millisec)

Try to lock the mutex for a specified time.

Parameters
millisectimeout value.
Returns
true if the mutex was acquired, false otherwise.
Note
the underlying RTOS may have a limit to the maximum wait time due to internal 32-bit computations, but this is guaranteed to work if the wait is <= 0x7fffffff milliseconds (~24 days). If the limit is exceeded, the lock attempt will time out earlier than specified.
You cannot call this function from ISR context.

Definition at line 211 of file Mutex.h.

bool trylock_until ( uint64_t  millisec)

Try to lock the mutex until specified time.

Parameters
millisecabsolute timeout time, referenced to Kernel::get_ms_count()
Returns
true if the mutex was acquired, false otherwise.
Note
the underlying RTOS may have a limit to the maximum wait time due to internal 32-bit computations, but this is guaranteed to work if the wait is <= 0x7fffffff milliseconds (~24 days). If the limit is exceeded, the lock attempt will time out earlier than specified.
You cannot call this function from ISR context.

Definition at line 216 of file Mutex.h.

void unlock ( void  )

Unlock the mutex that has previously been locked by the same thread.

Returns
status code that indicates the execution status of the function: osOK the mutex has been released.
Note
You cannot call this function from ISR context.
This function treats RTOS errors as fatal system errors, so it can only return osOK. Use of the return value is deprecated, as the return is expected to become void in the future.

Definition at line 221 of file Mutex.h.

~Mutex ( )

Mutex destructor.

Note
You cannot call this function from ISR context.

Definition at line 198 of file Mutex.h.

Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.