\hypertarget{classnntrainer_1_1TaskExecutor}{}\doxysection{nntrainer\+::Task\+Executor Class Reference}
\label{classnntrainer_1_1TaskExecutor}\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}


task executor class  




{\ttfamily \#include $<$task\+\_\+executor.\+h$>$}

\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}\label{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}} 
enum \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Complete\+Status}} \{ {\bfseries S\+U\+C\+C\+E\+SS}, 
{\bfseries F\+A\+I\+L\+\_\+\+C\+A\+N\+C\+EL}, 
{\bfseries F\+A\+I\+L\+\_\+\+T\+I\+M\+E\+O\+UT}, 
{\bfseries F\+A\+IL}
 \}
\begin{DoxyCompactList}\small\item\em Complete error types. \end{DoxyCompactList}\item 
using \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ac4b54a439c1c6d9358fb31d7aba8abc1}{Complete\+Callback}} = std\+::function$<$ void(int, \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Complete\+Status}})$>$
\item 
{\footnotesize template$<$typename T  = std\+::chrono\+::milliseconds$>$ }\\using \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad26066825fd383c923ee325b217f5b6d}{Task\+Info}} = std\+::tuple$<$ int, std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classnntrainer_1_1TaskAsync}{Task\+Async}}$<$ T $>$ $>$, \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ac4b54a439c1c6d9358fb31d7aba8abc1}{Complete\+Callback}}, std\+::atomic\+\_\+bool, std\+::promise$<$ \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Complete\+Status}} $>$ $>$
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classnntrainer_1_1TaskExecutor_a5666a43f92927754eeaa80dc0298ad11}{Task\+Executor}} (const std\+::string \&name=\char`\"{}\char`\"{})
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classnntrainer_1_1TaskExecutor}{Task\+Executor}} constructor. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_a53abad29c3fa9cd8966e9fcd7df66d84}{$\sim$\+Task\+Executor}} ()
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{classnntrainer_1_1TaskExecutor}{Task\+Executor}} destructor. \end{DoxyCompactList}\item 
virtual int \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_a29dc661ca1c303efa95447faa313588e}{run}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classnntrainer_1_1Task}{Task}} $>$ task)
\begin{DoxyCompactList}\small\item\em Run task. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T $>$ }\\int \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_a8bdae6900ed57a9afa04d2c44de19eb5}{run}} (std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classnntrainer_1_1TaskAsync}{Task\+Async}}$<$ T $>$$>$ task, \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ac4b54a439c1c6d9358fb31d7aba8abc1}{Complete\+Callback}} callback)
\begin{DoxyCompactList}\small\item\em Run task asynchronously. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_aa2a5051dfa770715fb6edc685dfa4799}{cancel}} (int id)
\begin{DoxyCompactList}\small\item\em Cancel task. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a1b64a2fb35c6867eb22e73b1227a73ba}\label{classnntrainer_1_1TaskExecutor_a1b64a2fb35c6867eb22e73b1227a73ba}} 
virtual void \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_a1b64a2fb35c6867eb22e73b1227a73ba}{cancel\+All}} (void)
\begin{DoxyCompactList}\small\item\em Cancel all task. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ae3c2abd681e617313fa1541af0ee0894}{clean}} (void)
\begin{DoxyCompactList}\small\item\em Clean all non-\/running tasks from managed list. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T $>$ }\\\mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Complete\+Status}} \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_adcc0d36b99aedd4ac632c04ceece59af}{worker}} (\mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad26066825fd383c923ee325b217f5b6d}{Task\+Info}}$<$ T $>$ \&info)
\begin{DoxyCompactList}\small\item\em task worker for asynchronous task \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Complete\+Status}} \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ac51f0721865100711e474f14eeaa34bc}{handle\+Work}} (std\+::atomic\+\_\+bool \&running, \mbox{\hyperlink{classnntrainer_1_1Task_a7c5e468f05bb723a3b8c6316053ce624}{Task\+::\+Work}} \&work, void $\ast$data)
\begin{DoxyCompactList}\small\item\em handle work for asynchronous task \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_ae5b5e1ea6d3c22fe8ece710f37da55b3}\label{classnntrainer_1_1TaskExecutor_ae5b5e1ea6d3c22fe8ece710f37da55b3}} 
std\+::string {\bfseries name}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a6f3df9223ce2e05e59807b525eacef5d}\label{classnntrainer_1_1TaskExecutor_a6f3df9223ce2e05e59807b525eacef5d}} 
bool {\bfseries run\+\_\+thread}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a243cb0c80ab62604e785873c8d1df5e7}\label{classnntrainer_1_1TaskExecutor_a243cb0c80ab62604e785873c8d1df5e7}} 
bool {\bfseries wait\+\_\+complete}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a2ced5635c5e616d4347cfc8a518dd728}\label{classnntrainer_1_1TaskExecutor_a2ced5635c5e616d4347cfc8a518dd728}} 
std\+::list$<$ \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad26066825fd383c923ee325b217f5b6d}{Task\+Info}}$<$$>$ $>$ {\bfseries task\+\_\+queue}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a0e0fb787699b4e5010f4a000b0c4b865}\label{classnntrainer_1_1TaskExecutor_a0e0fb787699b4e5010f4a000b0c4b865}} 
std\+::condition\+\_\+variable {\bfseries task\+\_\+cv}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_acfffc570b70a161a984b876de2025645}\label{classnntrainer_1_1TaskExecutor_acfffc570b70a161a984b876de2025645}} 
std\+::condition\+\_\+variable {\bfseries comp\+\_\+cv}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_adae75d765c1a4805f01a6b21adc22882}\label{classnntrainer_1_1TaskExecutor_adae75d765c1a4805f01a6b21adc22882}} 
std\+::thread {\bfseries task\+\_\+thread}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_adc77cdb19b68065b225cec594917a6d6}\label{classnntrainer_1_1TaskExecutor_adc77cdb19b68065b225cec594917a6d6}} 
std\+::mutex {\bfseries task\+\_\+mutex}
\end{DoxyCompactItemize}
\doxysubsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a662316d528862087aa7ba2c62f9c7553}\label{classnntrainer_1_1TaskExecutor_a662316d528862087aa7ba2c62f9c7553}} 
static std\+::atomic\+\_\+int32\+\_\+t {\bfseries ids}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
task executor class 

Definition at line 35 of file task\+\_\+executor.\+h.



\doxysubsection{Member Typedef Documentation}
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_ac4b54a439c1c6d9358fb31d7aba8abc1}\label{classnntrainer_1_1TaskExecutor_ac4b54a439c1c6d9358fb31d7aba8abc1}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!CompleteCallback@{CompleteCallback}}
\index{CompleteCallback@{CompleteCallback}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{CompleteCallback}{CompleteCallback}}
{\footnotesize\ttfamily using \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ac4b54a439c1c6d9358fb31d7aba8abc1}{nntrainer\+::\+Task\+Executor\+::\+Complete\+Callback}} =  std\+::function$<$void(int, \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Complete\+Status}})$>$}

(task id, status) 

Definition at line 51 of file task\+\_\+executor.\+h.

\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_ad26066825fd383c923ee325b217f5b6d}\label{classnntrainer_1_1TaskExecutor_ad26066825fd383c923ee325b217f5b6d}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!TaskInfo@{TaskInfo}}
\index{TaskInfo@{TaskInfo}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{TaskInfo}{TaskInfo}}
{\footnotesize\ttfamily template$<$typename T  = std\+::chrono\+::milliseconds$>$ \\
using \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad26066825fd383c923ee325b217f5b6d}{nntrainer\+::\+Task\+Executor\+::\+Task\+Info}} =  std\+::tuple$<$int, std\+::shared\+\_\+ptr$<$\mbox{\hyperlink{classnntrainer_1_1TaskAsync}{Task\+Async}}$<$T$>$ $>$, \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ac4b54a439c1c6d9358fb31d7aba8abc1}{Complete\+Callback}}, std\+::atomic\+\_\+bool, std\+::promise$<$\mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Complete\+Status}}$>$ $>$}

(task id, task, complete callback, running, complete promise) 

Definition at line 57 of file task\+\_\+executor.\+h.



\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a5666a43f92927754eeaa80dc0298ad11}\label{classnntrainer_1_1TaskExecutor_a5666a43f92927754eeaa80dc0298ad11}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!TaskExecutor@{TaskExecutor}}
\index{TaskExecutor@{TaskExecutor}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{TaskExecutor()}{TaskExecutor()}}
{\footnotesize\ttfamily nntrainer\+::\+Task\+Executor\+::\+Task\+Executor (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{name = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}



\mbox{\hyperlink{classnntrainer_1_1TaskExecutor}{Task\+Executor}} constructor. 



Definition at line 31 of file task\+\_\+executor.\+cpp.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classnntrainer_1_1TaskExecutor_a5666a43f92927754eeaa80dc0298ad11_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a53abad29c3fa9cd8966e9fcd7df66d84}\label{classnntrainer_1_1TaskExecutor_a53abad29c3fa9cd8966e9fcd7df66d84}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!````~TaskExecutor@{$\sim$TaskExecutor}}
\index{````~TaskExecutor@{$\sim$TaskExecutor}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{$\sim$TaskExecutor()}{~TaskExecutor()}}
{\footnotesize\ttfamily nntrainer\+::\+Task\+Executor\+::$\sim$\+Task\+Executor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\mbox{\hyperlink{classnntrainer_1_1TaskExecutor}{Task\+Executor}} destructor. 



Definition at line 60 of file task\+\_\+executor.\+cpp.



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_aa2a5051dfa770715fb6edc685dfa4799}\label{classnntrainer_1_1TaskExecutor_aa2a5051dfa770715fb6edc685dfa4799}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!cancel@{cancel}}
\index{cancel@{cancel}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{cancel()}{cancel()}}
{\footnotesize\ttfamily void nntrainer\+::\+Task\+Executor\+::cancel (\begin{DoxyParamCaption}\item[{int}]{id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Cancel task. 


\begin{DoxyParams}{Parameters}
{\em id} & task id returned from Task\+Executor\+Async\+::run \\
\hline
\end{DoxyParams}


Definition at line 72 of file task\+\_\+executor.\+cpp.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classnntrainer_1_1TaskExecutor_aa2a5051dfa770715fb6edc685dfa4799_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_ae3c2abd681e617313fa1541af0ee0894}\label{classnntrainer_1_1TaskExecutor_ae3c2abd681e617313fa1541af0ee0894}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!clean@{clean}}
\index{clean@{clean}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{clean()}{clean()}}
{\footnotesize\ttfamily void nntrainer\+::\+Task\+Executor\+::clean (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Clean all non-\/running tasks from managed list. 

\begin{DoxyNote}{Note}
Do not use this inside of the complete or worker callback 
\end{DoxyNote}


Definition at line 88 of file task\+\_\+executor.\+cpp.

\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_ac51f0721865100711e474f14eeaa34bc}\label{classnntrainer_1_1TaskExecutor_ac51f0721865100711e474f14eeaa34bc}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!handleWork@{handleWork}}
\index{handleWork@{handleWork}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{handleWork()}{handleWork()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Task\+Executor\+::\+Complete\+Status}} nntrainer\+::\+Task\+Executor\+::handle\+Work (\begin{DoxyParamCaption}\item[{std\+::atomic\+\_\+bool \&}]{running,  }\item[{\mbox{\hyperlink{classnntrainer_1_1Task_a7c5e468f05bb723a3b8c6316053ce624}{Task\+::\+Work}} \&}]{work,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}



handle work for asynchronous task 


\begin{DoxyParams}{Parameters}
{\em running} & running flag \\
\hline
{\em work} & work function \\
\hline
{\em data} & data to be passed to work function \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Complete\+Status 
\end{DoxyReturn}


Definition at line 98 of file task\+\_\+executor.\+cpp.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classnntrainer_1_1TaskExecutor_ac51f0721865100711e474f14eeaa34bc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a29dc661ca1c303efa95447faa313588e}\label{classnntrainer_1_1TaskExecutor_a29dc661ca1c303efa95447faa313588e}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!run@{run}}
\index{run@{run}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{run()}{run()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily int nntrainer\+::\+Task\+Executor\+::run (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classnntrainer_1_1Task}{Task}} $>$}]{task }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Run task. 


\begin{DoxyParams}{Parameters}
{\em task} & task to be run \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on Success, else negative error 
\end{DoxyReturn}


Definition at line 66 of file task\+\_\+executor.\+cpp.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classnntrainer_1_1TaskExecutor_a29dc661ca1c303efa95447faa313588e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_a8bdae6900ed57a9afa04d2c44de19eb5}\label{classnntrainer_1_1TaskExecutor_a8bdae6900ed57a9afa04d2c44de19eb5}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!run@{run}}
\index{run@{run}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{run()}{run()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
int nntrainer\+::\+Task\+Executor\+::run (\begin{DoxyParamCaption}\item[{std\+::shared\+\_\+ptr$<$ \mbox{\hyperlink{classnntrainer_1_1TaskAsync}{Task\+Async}}$<$ T $>$$>$}]{task,  }\item[{\mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ac4b54a439c1c6d9358fb31d7aba8abc1}{Complete\+Callback}}}]{callback }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Run task asynchronously. 


\begin{DoxyParams}{Parameters}
{\em task} & async task to be run \\
\hline
{\em callback} & complete callback \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
id of requested task. negative on fail 
\end{DoxyReturn}


Definition at line 88 of file task\+\_\+executor.\+h.

\mbox{\Hypertarget{classnntrainer_1_1TaskExecutor_adcc0d36b99aedd4ac632c04ceece59af}\label{classnntrainer_1_1TaskExecutor_adcc0d36b99aedd4ac632c04ceece59af}} 
\index{nntrainer::TaskExecutor@{nntrainer::TaskExecutor}!worker@{worker}}
\index{worker@{worker}!nntrainer::TaskExecutor@{nntrainer::TaskExecutor}}
\doxysubsubsection{\texorpdfstring{worker()}{worker()}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
\mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad2bdaa31df51bdff62d568bb7090ef71}{Complete\+Status}} nntrainer\+::\+Task\+Executor\+::worker (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classnntrainer_1_1TaskExecutor_ad26066825fd383c923ee325b217f5b6d}{Task\+Info}}$<$ T $>$ \&}]{info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}}



task worker for asynchronous task 


\begin{DoxyParams}{Parameters}
{\em id} & task id \\
\hline
{\em task} & asynchronous task \\
\hline
\end{DoxyParams}


Definition at line 127 of file task\+\_\+executor.\+h.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classnntrainer_1_1TaskExecutor_adcc0d36b99aedd4ac632c04ceece59af_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classnntrainer_1_1TaskExecutor_adcc0d36b99aedd4ac632c04ceece59af_icgraph}
\end{center}
\end{figure}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
tensor/\mbox{\hyperlink{task__executor_8h}{task\+\_\+executor.\+h}}\item 
tensor/\mbox{\hyperlink{task__executor_8cpp}{task\+\_\+executor.\+cpp}}\end{DoxyCompactItemize}
