17 FW_ASSERT(&this->m_delegate == reinterpret_cast<ConditionVariableInterface*>(&this->m_handle_storage[0]));
18 if (this->m_lock !=
nullptr && this->m_lock != &mutex) {
19 return Status::ERROR_DIFFERENT_MUTEX;
21 this->m_lock = &mutex;
22 return this->m_delegate.
pend(mutex);
25 FW_ASSERT(&this->m_delegate == reinterpret_cast<ConditionVariableInterface*>(&this->m_handle_storage[0]));
29 FW_ASSERT(&this->m_delegate == reinterpret_cast<ConditionVariableInterface*>(&this->m_handle_storage[0]));
34 FW_ASSERT(&this->m_delegate == reinterpret_cast<const ConditionVariableInterface*>(&this->m_handle_storage[0]));
void notify() override
notify a single waiter on this condition variable
~DelegateConditionVariable() final
default virtual destructor
virtual Status pend(Os::Mutex &mutex)=0
wait on a condition variable
DelegateConditionVariable()
default constructor
Link-time delegating Mutex implementation.
virtual void notifyAll()=0
notify all waiters on this condition variable
virtual ~ConditionVariableInterface()=default
Default destructor.
virtual ConditionVariableHandle * getHandle()=0
return the underlying condition variable handle (implementation specific).
Status pend(Os::Mutex &mutex) override
wait on a condition variable
interface for condition variables
ConditionVariableHandle * getHandle() override
return the underlying condition variable handle (implementation specific). Delegates to implementatio...
virtual void notify()=0
notify a single waiter on this condition variable
void notifyAll() override
notify all waiters on this condition variable
Condition variable handle parent.