mn::system::basic_critical_section Class Reference

#include <mn_criticalsection.hpp>

+ Inheritance diagram for mn::system::basic_critical_section:
+ Collaboration diagram for mn::system::basic_critical_section:

Public Member Functions

 basic_critical_section ()
 
 basic_critical_section (portMUX_TYPE type)
 
virtual int lock (unsigned int timeout=0)
 
virtual int unlock ()
 
- Public Member Functions inherited from mn::system::ISystemLockObject
virtual int time_lock (const struct timespec *timeout)
 
virtual bool is_initialized ()
 
- Public Member Functions inherited from mn::ILockObject
 ILockObject ()
 
virtual bool try_lock ()
 
virtual bool is_initialized () const =0
 
virtual bool is_locked () const =0
 Is locked? More...
 

Protected Attributes

portMUX_TYPE m_pHandle
 

Additional Inherited Members

- Public Types inherited from mn::ILockObject
using this_type = ILockObject
 

Detailed Description

Wrapper class around FreeRTOS's implementation of a critical sections. Can you use im ISR Context

Note
Use the follow FreeRTOS macros: portENTER_CRITICAL_SAFE and portEXIT_CRITICAL_SAFE

Constructor & Destructor Documentation

◆ basic_critical_section() [1/2]

mn::system::basic_critical_section::basic_critical_section ( )

◆ basic_critical_section() [2/2]

mn::system::basic_critical_section::basic_critical_section ( portMUX_TYPE  type)

Member Function Documentation

◆ lock()

int mn::system::basic_critical_section::lock ( unsigned int  timeout = 0)
virtual

enter the critical section

Parameters
timeoutNot used
Returns
ERR_SYSTEM_NO_RETURN

Implements mn::ILockObject.

◆ unlock()

int mn::system::basic_critical_section::unlock ( )
virtual

leave the critical section

Returns
ERR_SYSTEM_NO_RETURN

Implements mn::ILockObject.

Member Data Documentation

◆ m_pHandle

portMUX_TYPE mn::system::basic_critical_section::m_pHandle
protected

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