Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: nRF51_Vdd TextLCD BME280
Rtos
Data Structures | |
class | ConditionVariable |
The ConditionVariable class is a synchronization primitive that allows threads to wait until a particular condition occurs. More... | |
Namespaces | |
namespace | rtos::Kernel |
Functions in the Kernel namespace control RTOS kernel information. | |
Modules | |
EventFlags class | |
Mail class | |
MemoryPool class | |
Mutex class | |
Queue class | |
RTOS hook functions | |
Idle hook function | |
RtosTimer class | |
Semaphore class | |
ThisThread namespace | |
Thread class | |
Typedefs | |
typedef mbed::ScopedLock< Mutex > | ScopedMutexLock |
Typedef for the mutex lock. | |
Functions | |
void | wait () |
Wait for a notification. | |
bool | wait_until (uint64_t millisec) |
Wait for a notification until the specified time. | |
bool | wait_for (uint32_t millisec) |
Wait for a notification or timeout. | |
void | notify_one () |
Notify one waiter on this condition variable that a condition changed. | |
void | notify_all () |
Notify all waiters on this condition variable that a condition changed. | |
~ConditionVariable () | |
ConditionVariable destructor. | |
void | attach_idle_hook (void(*fptr)(void)) |
Attach a function to be called by the RTOS idle task. | |
void | attach_thread_terminate_hook (void(*fptr)(osThreadId_t id)) |
Attach a function to be called when a thread terminates. |
Typedef Documentation
typedef mbed::ScopedLock<Mutex> ScopedMutexLock |
Typedef for the mutex lock.
Usage:
void foo(Mutex &m) { ScopedMutexLock lock(m); // Mutex lock protects code in this block }
Function Documentation
void attach_idle_hook | ( | void(*)(void) | fptr ) |
Attach a function to be called by the RTOS idle task.
- Parameters:
-
fptr pointer to the function to be called
- Note:
- You may call this function from ISR context.
Definition at line 66 of file Kernel.cpp.
void attach_thread_terminate_hook | ( | void(*)(osThreadId_t id) | fptr ) |
Attach a function to be called when a thread terminates.
- Parameters:
-
fptr pointer to the function to be called
- Note:
- You may call this function from ISR context.
Definition at line 71 of file Kernel.cpp.
void notify_all | ( | ) | [inherited] |
Notify all waiters on this condition variable that a condition changed.
This function unblocks all of the threads waiting for the condition variable.
- Note:
- - The thread calling this function must be the owner of the ConditionVariable's mutex.
- - If there are one or more waiters and one or more threads attempting to acquire the condition variable's mutex the order in which the mutex is acquired is undefined.
- You cannot call this function from ISR context.
Definition at line 94 of file ConditionVariable.cpp.
void notify_one | ( | ) | [inherited] |
Notify one waiter on this condition variable that a condition changed.
This function unblocks one of the threads waiting for the condition variable.
- Note:
- - The thread calling this function must be the owner of the ConditionVariable's mutex.
- - The thread that is unblocked on ConditionVariable::notify_one is undefined if there are multiple waiters.
- You cannot call this function from ISR context.
Definition at line 85 of file ConditionVariable.cpp.
void wait | ( | ) | [inherited] |
Wait for a notification.
Wait causes the current thread to block until the condition variable receives a notification from another thread.
- Note:
- - The thread calling this function must be the owner of the ConditionVariable's mutex, and it must be locked exactly once.
- - Spurious notifications can occur, so the caller of this API should check to make sure the condition the caller is waiting on has been met.
- - The current thread releases the lock while inside the wait function and reacquires it upon exiting the function.
Example:
mutex.lock();
while (!condition_met) {
cond.wait();
}
function_to_handle_condition();
mutex.unlock();
- Note:
- You cannot call this function from ISR context.
Definition at line 41 of file ConditionVariable.cpp.
bool wait_for | ( | uint32_t | millisec ) | [inherited] |
Wait for a notification or timeout.
`Wait for` causes the current thread to block until the condition variable receives a notification from another thread, or the timeout specified by the millisec parameter is reached.
- Parameters:
-
millisec Timeout value or osWaitForever in case of no timeout.
- Returns:
- `true` if a timeout occurred, `false` otherwise.
- Note:
- - The thread calling this function must be the owner of the ConditionVariable's mutex, and it must be locked exactly once.
- - Spurious notifications can occur, so the caller of this API should check to make sure the condition the caller is waiting on has been met.
- - The current thread releases the lock while inside the wait function and reacquire it upon exiting the function.
Example:
mutex.lock(); while (!condition_met) { cond.wait_for(MAX_SLEEP_TIME); if (!condition_met) { do_other_work_while_condition_false(); } } if (condition_met) { function_to_handle_condition(); } mutex.unlock();
- Note:
- You cannot call this function from ISR context.
Definition at line 46 of file ConditionVariable.cpp.
bool wait_until | ( | uint64_t | millisec ) | [inherited] |
Wait for a notification until the specified time.
Wait until causes the current thread to block until the condition variable is notified, or a specific time given by millisec parameter is reached.
- Parameters:
-
millisec Absolute end time referenced to `Kernelget_ms_count()`
- Returns:
- `true` if a timeout occurred, `false` otherwise.
- Note:
- - The thread calling this function must be the owner of the ConditionVariable's mutex, and it must be locked exactly once.
- - Spurious notifications can occur, so the caller of this API should check to make sure the condition the caller is waiting on has been met.
- - The current thread releases the lock while inside the wait function and reacquires it upon exiting the function.
Example:
mutex.lock(); uint64_t end_time = Kernel::get_ms_count() + COND_WAIT_TIMEOUT; while (!condition_met) { if (cond.wait_until(end_time)) { break; } } if (condition_met) { function_to_handle_condition(); } mutex.unlock();
- Note:
- You cannot call this function from ISR context.
Definition at line 67 of file ConditionVariable.cpp.
~ConditionVariable | ( | ) | [inherited] |
ConditionVariable destructor.
- Note:
- You cannot call this function from ISR context.
Definition at line 148 of file ConditionVariable.cpp.
Generated on Tue Jul 12 2022 15:16:11 by
