vt::runnable namespace

Namespaces

namespace detail

Classes

template<typename MsgT>
struct RunnableMaker
Convenience builder class for setting up a RunnableNew before enqueuing it or running it.
struct RunnableNew
Holds a runnable active handler along with all the context associated with it to run it independently of the where in the stack it was created.
struct RunnableNewAlloc

Functions

template<auto f, typename... Args>
auto invoke(Args && ... args) -> auto
template<typename Callable, Callable f, typename... Args>
auto invoke(Args && ... args) -> auto
template<typename U>
auto makeRunnable(MsgSharedPtr<U> const& msg, bool is_threaded, HandlerType handler, NodeType from) -> RunnableMaker<U>
Make a new runnable with a message.
auto makeRunnableVoid(bool is_threaded, HandlerType handler, NodeType from) -> RunnableMaker<BaseMsgType>
Make a new runnable without a message (void handler) – untraced variant. Call makeRunnableVoidTraced if you want it to show up in tracing.
auto makeRunnableVoidTraced(bool is_threaded, HandlerType handler, NodeType from, ] trace::TraceEventIDType trace_event, ] std::size_t msg_size) -> RunnableMaker<BaseMsgType>
Make a new runnable without a message (void handler) with tracing.
auto makeRunnableVoidTraced(bool is_threaded, HandlerType handler, NodeType from, ] trace::TraceEventIDType trace_event, ] std::size_t msg_size, ] uint64_t idx1, ] uint64_t idx2, ] uint64_t idx3, ] uint64_t idx4) -> RunnableMaker<BaseMsgType>
Make a new runnable without a message (void handler) with tracing for collections.
template<>
auto RunnableNew::get<ctx::SetContext>() -> ctx::SetContext*
template<>
auto RunnableNew::get<ctx::LBData>() -> ctx::LBData*

Function documentation

template<auto f, typename... Args>
auto vt::runnable::invoke(Args && ... args)

template<typename Callable, Callable f, typename... Args>
auto vt::runnable::invoke(Args && ... args)

template<typename U>
RunnableMaker<U> vt::runnable::makeRunnable(MsgSharedPtr<U> const& msg, bool is_threaded, HandlerType handler, NodeType from)

Make a new runnable with a message.

Parameters
msg in the message
is_threaded in whether it is threaded
handler in the handler bits
from in the node that caused this runnable to execute
Returns the maker for further customization

RunnableMaker<BaseMsgType> vt::runnable::makeRunnableVoid(bool is_threaded, HandlerType handler, NodeType from)

Make a new runnable without a message (void handler) – untraced variant. Call makeRunnableVoidTraced if you want it to show up in tracing.

Parameters
is_threaded in whether it is threaded
handler in the handler bits
from in the node that caused this runnable to execute
Returns the maker for further customization

RunnableMaker<BaseMsgType> vt::runnable::makeRunnableVoidTraced(bool is_threaded, HandlerType handler, NodeType from, ] trace::TraceEventIDType trace_event, ] std::size_t msg_size)

Make a new runnable without a message (void handler) with tracing.

Parameters
is_threaded in whether it is threaded
handler in the handler bits
from in the node that caused this runnable to execute
trace_event
msg_size
Returns the maker for further customization

RunnableMaker<BaseMsgType> vt::runnable::makeRunnableVoidTraced(bool is_threaded, HandlerType handler, NodeType from, ] trace::TraceEventIDType trace_event, ] std::size_t msg_size, ] uint64_t idx1, ] uint64_t idx2, ] uint64_t idx3, ] uint64_t idx4)

Make a new runnable without a message (void handler) with tracing for collections.

Parameters
is_threaded in whether it is threaded
handler in the handler bits
from in the node that caused this runnable to execute
trace_event
msg_size
idx1 in 1-dimension index
idx2 in 2-dimension index
idx3 in 3-dimension index
idx4 in 4-dimension index
Returns the maker for further customization