MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ fork()

template<typename Executor , ComputeData DataType>
template<typename... OpClasses>
auto MayaFlux::Yantra::FluentExecutor< Executor, DataType >::fork ( )
inline

Fork execution into multiple independent parallel paths.

Executes each operation in OpClasses against the current Datum concurrently and returns a tuple of results. Each result is an std::optional<Datum<DataType>>.

Template Parameters
OpClassesOperation classes to execute in parallel
Returns
std::tuple of optional Datum results, one per OpClass

Definition at line 337 of file OperationChain.hpp.

338 {
339 if (!m_successful) {
340 error<std::runtime_error>(
342 std::source_location::current(),
343 "Cannot fork after failed operation");
344 }
345
346 return std::make_tuple(
347 m_executor->template execute<OpClasses, DataType>(m_data)...);
348 }
std::shared_ptr< Executor > m_executor
@ ComputeMatrix
Compute operations (Yantra - algorithms, matrices, DSP)
@ Yantra
DSP algorithms, computational units, matrix operations, Grammar.