gem5
v22.1.0.0
|
CallerType: A reference to an object of this class will be passed to the coroutine task. More...
#include <coroutine.hh>
Public Member Functions | |
template<typename T = Ret> | |
CallerType & | operator() (typename std::enable_if_t< !std::is_same_v< T, void >, T > param) |
operator() is the way we can jump outside the coroutine and return a value to the caller. More... | |
template<typename T = Ret> | |
std::enable_if_t< std::is_same_v< T, void >, CallerType > & | operator() () |
operator() is the way we can jump outside the coroutine More... | |
template<typename T = Arg> | |
std::enable_if_t<!std::is_same_v< T, void >, T > | get () |
get() is the way we can extrapolate arguments from the coroutine caller. More... | |
Protected Member Functions | |
CallerType (Coroutine &_coro) | |
Private Attributes | |
Coroutine & | coro |
Fiber * | callerFiber |
RetChannel | retChannel |
Friends | |
class | Coroutine |
CallerType: A reference to an object of this class will be passed to the coroutine task.
This is the way it is possible for the coroutine to interface (e.g. switch back) to the coroutine caller.
Definition at line 85 of file coroutine.hh.
|
inlineprotected |
Definition at line 89 of file coroutine.hh.
|
friend |
Definition at line 87 of file coroutine.hh.
|
private |
Definition at line 156 of file coroutine.hh.
Referenced by gem5::Coroutine< Arg, Ret >::call(), gem5::Coroutine< Arg, Ret >::CallerType::get(), and gem5::Coroutine< Arg, Ret >::CallerType::operator()().
|
private |
Definition at line 155 of file coroutine.hh.
Referenced by gem5::Coroutine< Arg, Ret >::CallerType::get().
|
private |
Definition at line 157 of file coroutine.hh.
Referenced by gem5::Coroutine< Arg, Ret >::get(), and gem5::Coroutine< Arg, Ret >::CallerType::operator()().