CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::TAsyncMutex< ExecutorType >::LockOperation Class Reference

#include <CeresEngine/Foundation/Threading/AsyncMutex.hpp>

Inheritance diagram for CeresEngine::TAsyncMutex< ExecutorType >::LockOperation:
CeresEngine::TAsyncMutex< ExecutorType >::ScopedLockOperation

Public Member Functions

 LockOperation (TAsyncMutex &mutex) noexcept
 
bool await_ready () const noexcept
 
bool await_suspend (const CoroutineHandle<> awaiter) noexcept
 
void await_resume () const noexcept
 

Protected Attributes

TAsyncMutexmMutex
 The ´AsyncMutex` that the lock operations belongs to.
 

Private Attributes

LockOperationmNext
 The next LockOperation in the chain.
 
CoroutineHandle mAwaiter
 The coroutine handle to the awaiter that is waiting for the lock.
 

Friends

class TAsyncMutex
 

Constructor & Destructor Documentation

◆ LockOperation()

template<typename ExecutorType = InlineExecutor>
CeresEngine::TAsyncMutex< ExecutorType >::LockOperation::LockOperation ( TAsyncMutex mutex)
inlineexplicitnoexcept

Member Function Documentation

◆ await_ready()

template<typename ExecutorType = InlineExecutor>
bool CeresEngine::TAsyncMutex< ExecutorType >::LockOperation::await_ready ( ) const
inlinenoexcept

◆ await_resume()

template<typename ExecutorType = InlineExecutor>
void CeresEngine::TAsyncMutex< ExecutorType >::LockOperation::await_resume ( ) const
inlinenoexcept

◆ await_suspend()

template<typename ExecutorType = InlineExecutor>
bool CeresEngine::TAsyncMutex< ExecutorType >::LockOperation::await_suspend ( const CoroutineHandle<>  awaiter)
inlinenoexcept

Friends And Related Symbol Documentation

◆ TAsyncMutex

template<typename ExecutorType = InlineExecutor>
friend class TAsyncMutex
friend

Member Data Documentation

◆ mAwaiter

template<typename ExecutorType = InlineExecutor>
CoroutineHandle CeresEngine::TAsyncMutex< ExecutorType >::LockOperation::mAwaiter
private

The coroutine handle to the awaiter that is waiting for the lock.

◆ mMutex

template<typename ExecutorType = InlineExecutor>
TAsyncMutex& CeresEngine::TAsyncMutex< ExecutorType >::LockOperation::mMutex
protected

The ´AsyncMutex` that the lock operations belongs to.

◆ mNext

template<typename ExecutorType = InlineExecutor>
LockOperation* CeresEngine::TAsyncMutex< ExecutorType >::LockOperation::mNext
private

The next LockOperation in the chain.

This is the next operation that will own the lock once we release the lock.


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