\hypertarget{class_s_c_i_run_1_1_thread_pool}{\section{Thread\-Pool Class Reference}
\label{class_s_c_i_run_1_1_thread_pool}\index{Thread\-Pool@{Thread\-Pool}}
}


{\ttfamily \#include $<$Thread\-Pool.\-h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_s_c_i_run_1_1_thread_pool_ac335f7f0d415f800cd70a01e02a64a5b}{Thread\-Pool} (const char $\ast$\hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{name})
\item 
\hyperlink{class_s_c_i_run_1_1_thread_pool_ad41a30b11a0c9d8566ca1a53b4cf43f6}{$\sim$\-Thread\-Pool} ()
\begin{DoxyCompactList}\small\item\em Destroy the pool and shutdown all threads. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_thread_pool_ae42a16eb4b305d093a06372a7c04c917}{parallel} (const \hyperlink{class_s_c_i_run_1_1_parallel_base}{Parallel\-Base} \&helper, int nthreads)
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{class_s_c_i_run_1_1_thread_pool_a5f8be95968847fc76715315b6e582aa9}{parallel} (T $\ast$ptr, void(T\-::$\ast$pmf)(int), int num\-Threads)
\item 
{\footnotesize template$<$class T , class Arg1 $>$ }\\void \hyperlink{class_s_c_i_run_1_1_thread_pool_aae59f0702ec1917ac5088ee763bba626}{parallel} (T $\ast$ptr, void(T\-::$\ast$pmf)(int, Arg1), int num\-Threads, Arg1 a1)
\begin{DoxyCompactList}\small\item\em Another overloaded version of parallel that passes 1 argument. \end{DoxyCompactList}\item 
{\footnotesize template$<$class T , class Arg1 , class Arg2 $>$ }\\void \hyperlink{class_s_c_i_run_1_1_thread_pool_a4b55a1751a52a08cfb6469e1f7f5012c}{parallel} (T $\ast$ptr, void(T\-::$\ast$pmf)(int, Arg1, Arg2), int num\-Threads, Arg1 a1, Arg2 a2)
\begin{DoxyCompactList}\small\item\em Another overloaded version of parallel that passes 2 arguments. \end{DoxyCompactList}\item 
{\footnotesize template$<$class T , class Arg1 , class Arg2 , class Arg3 $>$ }\\void \hyperlink{class_s_c_i_run_1_1_thread_pool_a709c34b57470d535661d0211b024be0a}{parallel} (T $\ast$ptr, void(T\-::$\ast$pmf)(int, Arg1, Arg2, Arg3), int num\-Threads, Arg1 a1, Arg2 a2, Arg3 a3)
\begin{DoxyCompactList}\small\item\em Another overloaded version of parallel that passes 3 arguments. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_s_c_i_run_1_1_thread_pool_a4d869c205447f41e315e8f07a6fa8440}{Thread\-Pool\-Helper}
\end{DoxyCompactItemize}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_s_c_i_run_1_1_thread_pool_ac335f7f0d415f800cd70a01e02a64a5b}{\index{S\-C\-I\-Run\-::\-Thread\-Pool@{S\-C\-I\-Run\-::\-Thread\-Pool}!Thread\-Pool@{Thread\-Pool}}
\index{Thread\-Pool@{Thread\-Pool}!SCIRun::ThreadPool@{S\-C\-I\-Run\-::\-Thread\-Pool}}
\subsubsection[{Thread\-Pool}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Thread\-Pool} (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_pool_ac335f7f0d415f800cd70a01e02a64a5b}
Create a thread pool. {\ttfamily name} should be a static string which describes the primitive for debugging purposes. \hypertarget{class_s_c_i_run_1_1_thread_pool_ad41a30b11a0c9d8566ca1a53b4cf43f6}{\index{S\-C\-I\-Run\-::\-Thread\-Pool@{S\-C\-I\-Run\-::\-Thread\-Pool}!$\sim$\-Thread\-Pool@{$\sim$\-Thread\-Pool}}
\index{$\sim$\-Thread\-Pool@{$\sim$\-Thread\-Pool}!SCIRun::ThreadPool@{S\-C\-I\-Run\-::\-Thread\-Pool}}
\subsubsection[{$\sim$\-Thread\-Pool}]{\setlength{\rightskip}{0pt plus 5cm}$\sim${\bf Thread\-Pool} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_pool_ad41a30b11a0c9d8566ca1a53b4cf43f6}


Destroy the pool and shutdown all threads. 



\subsection{Member Function Documentation}
\hypertarget{class_s_c_i_run_1_1_thread_pool_ae42a16eb4b305d093a06372a7c04c917}{\index{S\-C\-I\-Run\-::\-Thread\-Pool@{S\-C\-I\-Run\-::\-Thread\-Pool}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::ThreadPool@{S\-C\-I\-Run\-::\-Thread\-Pool}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}void parallel (
\begin{DoxyParamCaption}
\item[{const {\bf Parallel\-Base} \&}]{helper, }
\item[{int}]{nthreads}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_pool_ae42a16eb4b305d093a06372a7c04c917}
Start up several threads that will run in parallel. The caller will block until all of the threads return. \hypertarget{class_s_c_i_run_1_1_thread_pool_a5f8be95968847fc76715315b6e582aa9}{\index{S\-C\-I\-Run\-::\-Thread\-Pool@{S\-C\-I\-Run\-::\-Thread\-Pool}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::ThreadPool@{S\-C\-I\-Run\-::\-Thread\-Pool}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}void parallel (
\begin{DoxyParamCaption}
\item[{T $\ast$}]{ptr, }
\item[{void(T\-::$\ast$)(int)}]{pmf, }
\item[{int}]{num\-Threads}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{class_s_c_i_run_1_1_thread_pool_a5f8be95968847fc76715315b6e582aa9}
Start up several threads that will run in parallel. The caller will block until all of the threads return. \hypertarget{class_s_c_i_run_1_1_thread_pool_aae59f0702ec1917ac5088ee763bba626}{\index{S\-C\-I\-Run\-::\-Thread\-Pool@{S\-C\-I\-Run\-::\-Thread\-Pool}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::ThreadPool@{S\-C\-I\-Run\-::\-Thread\-Pool}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}void parallel (
\begin{DoxyParamCaption}
\item[{T $\ast$}]{ptr, }
\item[{void(T\-::$\ast$)(int, Arg1)}]{pmf, }
\item[{int}]{num\-Threads, }
\item[{Arg1}]{a1}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{class_s_c_i_run_1_1_thread_pool_aae59f0702ec1917ac5088ee763bba626}


Another overloaded version of parallel that passes 1 argument. 

\hypertarget{class_s_c_i_run_1_1_thread_pool_a4b55a1751a52a08cfb6469e1f7f5012c}{\index{S\-C\-I\-Run\-::\-Thread\-Pool@{S\-C\-I\-Run\-::\-Thread\-Pool}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::ThreadPool@{S\-C\-I\-Run\-::\-Thread\-Pool}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}void parallel (
\begin{DoxyParamCaption}
\item[{T $\ast$}]{ptr, }
\item[{void(T\-::$\ast$)(int, Arg1, Arg2)}]{pmf, }
\item[{int}]{num\-Threads, }
\item[{Arg1}]{a1, }
\item[{Arg2}]{a2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{class_s_c_i_run_1_1_thread_pool_a4b55a1751a52a08cfb6469e1f7f5012c}


Another overloaded version of parallel that passes 2 arguments. 

\hypertarget{class_s_c_i_run_1_1_thread_pool_a709c34b57470d535661d0211b024be0a}{\index{S\-C\-I\-Run\-::\-Thread\-Pool@{S\-C\-I\-Run\-::\-Thread\-Pool}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::ThreadPool@{S\-C\-I\-Run\-::\-Thread\-Pool}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}void parallel (
\begin{DoxyParamCaption}
\item[{T $\ast$}]{ptr, }
\item[{void(T\-::$\ast$)(int, Arg1, Arg2, Arg3)}]{pmf, }
\item[{int}]{num\-Threads, }
\item[{Arg1}]{a1, }
\item[{Arg2}]{a2, }
\item[{Arg3}]{a3}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{class_s_c_i_run_1_1_thread_pool_a709c34b57470d535661d0211b024be0a}


Another overloaded version of parallel that passes 3 arguments. 



\subsection{Friends And Related Function Documentation}
\hypertarget{class_s_c_i_run_1_1_thread_pool_a4d869c205447f41e315e8f07a6fa8440}{\index{S\-C\-I\-Run\-::\-Thread\-Pool@{S\-C\-I\-Run\-::\-Thread\-Pool}!Thread\-Pool\-Helper@{Thread\-Pool\-Helper}}
\index{Thread\-Pool\-Helper@{Thread\-Pool\-Helper}!SCIRun::ThreadPool@{S\-C\-I\-Run\-::\-Thread\-Pool}}
\subsubsection[{Thread\-Pool\-Helper}]{\setlength{\rightskip}{0pt plus 5cm}friend class Thread\-Pool\-Helper\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_pool_a4d869c205447f41e315e8f07a6fa8440}


The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
Core/\-Thread/\-Legacy/\hyperlink{_thread_pool_8h}{Thread\-Pool.\-h}\end{DoxyCompactItemize}
