| 
    theCore C++ embedded framework
    
   | 
 
FreeRTOS-based semaphore. More...
#include </home/travis/build/forGGe/theCore/lib/thread/posix/export/ecl/thread/semaphore.hpp>
Public Member Functions | |
| semaphore () | |
| ~semaphore () | |
| void | signal () | 
| Signals a semaphore.  More... | |
| void | wait () | 
| Waits a semaphore Cannot be called from ISR.  More... | |
| bool | try_wait (std::chrono::milliseconds ms=std::chrono::milliseconds(0)) | 
| Tries to wait on semaphore without lock.  More... | |
| semaphore (const semaphore &)=delete | |
| semaphore & | operator= (const semaphore &)=delete | 
| constexpr | semaphore () | 
| Constructs semaphore.  More... | |
| void | signal () | 
| Signals semaphore, rises counter.  More... | |
| void | wait () | 
| Waits for semaphore, decreases counter.  More... | |
| bool | try_wait (std::chrono::milliseconds ms=std::chrono::milliseconds(0)) | 
| Tries to wait for semaphore signal.  More... | |
| semaphore (const semaphore &)=delete | |
| semaphore & | operator= (const semaphore &)=delete | 
| semaphore () | |
| Constructs semaphore.  More... | |
| void | signal () | 
| Signals semaphore, rises counter.  More... | |
| void | wait () | 
| Waits for semaphore, decreases counter.  More... | |
| bool | try_wait (std::chrono::milliseconds ms=std::chrono::milliseconds(0)) | 
| Tries to wait for semaphore signal.  More... | |
| semaphore (const semaphore &)=delete | |
| semaphore & | operator= (const semaphore &)=delete | 
FreeRTOS-based semaphore.
Counting semaphore.
Naive counting semaphore, acting like spinlock of some kind.
Suitable for targets without OS included and without WFI/WFE enabled. Useful during bring-up of new platforms. Main requirement - atomic support.
Implemented for host platform.
| ecl::semaphore::semaphore | ( | ) | 
| ecl::semaphore::~semaphore | ( | ) | 
      
  | 
  delete | 
      
  | 
  inline | 
Constructs semaphore.
      
  | 
  delete | 
| ecl::semaphore::semaphore | ( | ) | 
Constructs semaphore.
      
  | 
  delete | 
| void ecl::semaphore::signal | ( | ) | 
Signals a semaphore.
Can be called from ISR.
| void ecl::semaphore::wait | ( | ) | 
Waits a semaphore Cannot be called from ISR.
| bool ecl::semaphore::try_wait | ( | std::chrono::milliseconds | ms = std::chrono::milliseconds(0) | ) | 
Tries to wait on semaphore without lock.
| false | Wait will result in lock. | 
| true | Semaphore counter decremented. | 
| void ecl::semaphore::signal | ( | ) | 
Signals semaphore, rises counter.
Can be called from ISR.
| void ecl::semaphore::wait | ( | ) | 
Waits for semaphore, decreases counter.
Not callable from ISR. Blocks until signal() is called in different context.
| bool ecl::semaphore::try_wait | ( | std::chrono::milliseconds | ms = std::chrono::milliseconds(0) | ) | 
Tries to wait for semaphore signal.
Will wait for semaphore signal with provided timeout. If no parameter given then it will immediately exit if there is no pending signals.
| [in] | ms | Milliseconds to wait. | 
| true | Semaphore signal consumed, counter decreased. | 
| false | Nothing to consume. | 
| void ecl::semaphore::signal | ( | ) | 
Signals semaphore, rises counter.
| void ecl::semaphore::wait | ( | ) | 
Waits for semaphore, decreases counter.
Not callable from ISR. Blocks utill signal() is called in different context.
| bool ecl::semaphore::try_wait | ( | std::chrono::milliseconds | ms = std::chrono::milliseconds(0) | ) | 
Tries to wait for semaphore signal.
Will wait for semaphore signal with provided timeout. If no parameter given then it will immediatelly exit if there is no pending signals.
| [in] | ms | Milliseconds to wait. | 
| true | Semaphore signal consumed, counter decreased. | 
| false | Nothing to consume. |