11 FW_ASSERT(&this->m_delegate == reinterpret_cast<MutexInterface*>(&this->m_handle_storage[0]));
15 FW_ASSERT(&this->m_delegate == reinterpret_cast<MutexInterface*>(&this->m_handle_storage[0]));
20 FW_ASSERT(&this->m_delegate == reinterpret_cast<MutexInterface*>(&this->m_handle_storage[0]));
25 FW_ASSERT(&this->m_delegate == reinterpret_cast<MutexInterface*>(&this->m_handle_storage[0]));
26 return this->m_delegate.
take();
30 FW_ASSERT(&this->m_delegate == reinterpret_cast<MutexInterface*>(&this->m_handle_storage[0]));
31 return this->m_delegate.
release();
35 FW_ASSERT(&this->m_delegate == reinterpret_cast<MutexInterface*>(&this->m_handle_storage[0]));
41 FW_ASSERT(&this->m_delegate == reinterpret_cast<MutexInterface*>(&this->m_handle_storage[0]));
void unLock()
unlock the mutex and assert success
Status release() override
unlock the mutex and get return status
virtual Status release()=0
unlock the mutex return status
MutexHandle * getHandle() override
return the underlying mutex handle (implementation specific)
virtual Status take()=0
lock the mutex return status
virtual MutexHandle * getHandle()=0
return the underlying mutex handle (implementation specific)
Status take() override
lock the mutex and get return status
~ScopeLock()
unlock the scoped mutex
virtual ~MutexInterface()=default
default virtual destructor
ScopeLock(Mutex &mutex)
construct the scope lock
~Mutex() final
Destructor.
Mutex()
Constructor. Mutex is unlocked when created.
void lock()
lock the mutex and assert success