distortos  v0.4.0
object-oriented C++ RTOS for microcontrollers
distortos::internal::anonymous_namespace{MutexControlBlock.cpp}::PriorityInheritanceMutexControlBlockUnblockFunctor Class Reference
Inheritance diagram for distortos::internal::anonymous_namespace{MutexControlBlock.cpp}::PriorityInheritanceMutexControlBlockUnblockFunctor:
[legend]
Collaboration diagram for distortos::internal::anonymous_namespace{MutexControlBlock.cpp}::PriorityInheritanceMutexControlBlockUnblockFunctor:
[legend]

Public Member Functions

constexpr PriorityInheritanceMutexControlBlockUnblockFunctor (const MutexControlBlock &mutexControlBlock)
 PriorityInheritanceMutexControlBlockUnblockFunctor's constructor. More...
 
void operator() (ThreadControlBlock &threadControlBlock, const ThreadControlBlock::UnblockReason unblockReason) const override
 PriorityInheritanceMutexControlBlockUnblockFunctor's function call operator. More...
 

Private Attributes

const MutexControlBlockmutexControlBlock_
 reference to MutexControlBlock that blocked the thread More...
 

Detailed Description

PriorityInheritanceMutexControlBlockUnblockFunctor is a functor executed when unblocking a thread that is blocked on a mutex with PriorityInheritance protocol

Constructor & Destructor Documentation

◆ PriorityInheritanceMutexControlBlockUnblockFunctor()

constexpr distortos::internal::anonymous_namespace{MutexControlBlock.cpp}::PriorityInheritanceMutexControlBlockUnblockFunctor::PriorityInheritanceMutexControlBlockUnblockFunctor ( const MutexControlBlock mutexControlBlock)
inlineexplicit

PriorityInheritanceMutexControlBlockUnblockFunctor's constructor.

Parameters
[in]mutexControlBlockis a reference to MutexControlBlock that blocked the thread

Member Function Documentation

◆ operator()()

void distortos::internal::anonymous_namespace{MutexControlBlock.cpp}::PriorityInheritanceMutexControlBlockUnblockFunctor::operator() ( ThreadControlBlock threadControlBlock,
const ThreadControlBlock::UnblockReason  unblockReason 
) const
inlineoverride

PriorityInheritanceMutexControlBlockUnblockFunctor's function call operator.

If the wait for mutex was interrupted, requests update of boosted priority of current owner of the mutex. Pointer to MutexControlBlock with PriorityInheritance protocol which caused the thread to block is reset to nullptr.

Parameters
[in]threadControlBlockis a reference to ThreadControlBlock that is being unblocked
[in]unblockReasonis the reason of thread unblocking
Here is the call graph for this function:

Member Data Documentation

◆ mutexControlBlock_

const MutexControlBlock& distortos::internal::anonymous_namespace{MutexControlBlock.cpp}::PriorityInheritanceMutexControlBlockUnblockFunctor::mutexControlBlock_
private

reference to MutexControlBlock that blocked the thread


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