\hypertarget{class_s_c_i_run_1_1_thread}{\section{Thread Class Reference}
\label{class_s_c_i_run_1_1_thread}\index{Thread@{Thread}}
}


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

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834}{Active\-State} \{ \hyperlink{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834aed92813456b4cfc1005edc3b2c136a25}{Activated}, 
\hyperlink{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834a4d049c6d45e08a294523df186ad77a75}{Stopped}, 
\hyperlink{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834a3ddcb9d00afd275be773764a61348e80}{Not\-Activated}
 \}
\begin{DoxyCompactList}\small\item\em Possible thread start states. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_s_c_i_run_1_1_thread_a2e9bbbdc835bfa773036dacdd8d9ef3a}{Thread} (\hyperlink{class_s_c_i_run_1_1_thread_aed0099b61100d52db244032a2f948b43}{Runnable} $\ast$runner, const char $\ast$\hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{name}, \hyperlink{class_s_c_i_run_1_1_thread_group}{Thread\-Group} $\ast$group=0, \hyperlink{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834}{Active\-State} state=\hyperlink{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834aed92813456b4cfc1005edc3b2c136a25}{Activated}, unsigned long long stack\-\_\-size=D\-E\-F\-A\-U\-L\-T\-\_\-\-S\-T\-A\-C\-K\-S\-I\-Z\-E)
\item 
\hyperlink{class_s_c_i_run_1_1_thread_group}{Thread\-Group} $\ast$ \hyperlink{class_s_c_i_run_1_1_thread_a59bdb53153be21455163a4da08f11356}{get\-Thread\-Group} ()
\begin{DoxyCompactList}\small\item\em Return the {\bfseries \hyperlink{class_s_c_i_run_1_1_thread_group}{Thread\-Group}} associated with this thread. \end{DoxyCompactList}\item 
\hyperlink{class_s_c_i_run_1_1_thread_aed0099b61100d52db244032a2f948b43}{Runnable} $\ast$ \hyperlink{class_s_c_i_run_1_1_thread_ad1f9a8d7d86fadb1e9db61b30ed56d72}{get\-Runnable} ()
\begin{DoxyCompactList}\small\item\em Return the {\bfseries Runnable} associated with this thread. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a2b71d7f2026a2cbf836ec32bc26e3631}{set\-Daemon} (bool to=true)
\item 
bool \hyperlink{class_s_c_i_run_1_1_thread_ae1005aff32744ee0c95e918e24dced0d}{is\-Daemon} () const 
\begin{DoxyCompactList}\small\item\em Returns true if the thread is tagged as a daemon thread. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a3110ce5ac10d2a1ba107cfdf0ee6cc39}{activate} (bool stopped)
\item 
void \hyperlink{class_s_c_i_run_1_1_thread_ac295bade8aee589f6718dfa79edc2a34}{detach} ()
\item 
bool \hyperlink{class_s_c_i_run_1_1_thread_afd7fbb31c74e541aad6d286b1906a48a}{is\-Detached} () const 
\begin{DoxyCompactList}\small\item\em Returns true if the thread is detached. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a67a7ed261e8e3e98e7650fd304937fae}{set\-Stack\-Size} (unsigned long long stack\-Size)
\item 
unsigned long long \hyperlink{class_s_c_i_run_1_1_thread_a19633c553d96fe53b14f9da466db36c7}{get\-Stack\-Size} () const 
\begin{DoxyCompactList}\small\item\em Returns the stack size for the thread. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a8c528baf37154d347366083f0f816846}{stop} ()
\begin{DoxyCompactList}\small\item\em Stop the thread. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a41de8150eff044a237990c271d57ea27}{resume} ()
\begin{DoxyCompactList}\small\item\em Resume the thread. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a6c7abfff648dad193674fc432ad4840d}{join} ()
\item 
const char $\ast$ \hyperlink{class_s_c_i_run_1_1_thread_a956816e041c785d5f7868d0c42c4feae}{get\-Thread\-Name} () const 
\begin{DoxyCompactList}\small\item\em Returns the name of the thread. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a07b1e569f57a65ecc7f1a89bf95be9dd}{migrate} (int proc)
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \hyperlink{class_s_c_i_run_1_1_thread_af473e29fa8217a3bc4982f250fbc3ee3}{exit\-All} (int code)
\begin{DoxyCompactList}\small\item\em Kill all threads and exit with {\bfseries code}. \end{DoxyCompactList}\item 
static void \hyperlink{class_s_c_i_run_1_1_thread_a358d2e2397ca11ccd17553e3c40e7901}{exit} ()
\begin{DoxyCompactList}\small\item\em Exit the currently running thread. \end{DoxyCompactList}\item 
static \hyperlink{class_s_c_i_run_1_1_thread}{Thread} $\ast$ \hyperlink{class_s_c_i_run_1_1_thread_a0b84e933474ce4e3a2e8477762dc0faa}{self} ()
\begin{DoxyCompactList}\small\item\em Returns a pointer to the currently running thread. \end{DoxyCompactList}\item 
static int \hyperlink{class_s_c_i_run_1_1_thread_acf0ea028e9d2a757cd26b5e34ce2ca97}{num\-Processors} ()
\begin{DoxyCompactList}\small\item\em Returns the number of processors on the system. \end{DoxyCompactList}\item 
static \hyperlink{class_s_c_i_run_1_1_thread_group}{Thread\-Group} $\ast$ \hyperlink{class_s_c_i_run_1_1_thread_a67edc5ea108cbde73d496e9c2f82e524}{parallel} (\hyperlink{class_s_c_i_run_1_1_parallel_base}{Parallel\-Base} \&helper, int nthreads, bool block, \hyperlink{class_s_c_i_run_1_1_thread_group}{Thread\-Group} $\ast$thread\-Group=0)
\item 
{\footnotesize template$<$class T $>$ }\\static void \hyperlink{class_s_c_i_run_1_1_thread_a8d122387e45953f8984e78ec03b1cfa3}{parallel} (T $\ast$ptr, void(T\-::$\ast$pmf)(int), int num\-Threads)
\item 
{\footnotesize template$<$class T , class Arg1 $>$ }\\static void \hyperlink{class_s_c_i_run_1_1_thread_a6f5f90fa609c4dbf881d267b1c2df294}{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 $>$ }\\static void \hyperlink{class_s_c_i_run_1_1_thread_a2013512b74e89e0ac323edf323c35d6c}{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 $>$ }\\static void \hyperlink{class_s_c_i_run_1_1_thread_a3227ca1ee2f9b3dc1678bbfa31dfbf5e}{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}\item 
{\footnotesize template$<$class T , class Arg1 , class Arg2 , class Arg3 , class Arg4 $>$ }\\static void \hyperlink{class_s_c_i_run_1_1_thread_ac5d5f37cfe65c3552a38fb019d8d0f71}{parallel} (T $\ast$ptr, void(T\-::$\ast$pmf)(int, Arg1, Arg2, Arg3, Arg4), int num\-Threads, Arg1 a1, Arg2 a2, Arg3 a3, Arg4 a4)
\begin{DoxyCompactList}\small\item\em Another overloaded version of parallel that passes 4 arguments. \end{DoxyCompactList}\item 
static void \hyperlink{class_s_c_i_run_1_1_thread_a75517c1e7b5bcbc7e3d53b1bae22e517}{nice\-Abort} (void $\ast$Context=0)
\item 
static int \hyperlink{class_s_c_i_run_1_1_thread_af211ed868febcf6038b73fedb784429e}{could\-Block} (const char $\ast$why)
\item 
static void \hyperlink{class_s_c_i_run_1_1_thread_a41b6d16878bf6b6f9cb54abeaa81d306}{could\-Block\-Done} (int restore)
\item 
static void \hyperlink{class_s_c_i_run_1_1_thread_a58c8b2ad0ea491a6642e5e1cbd358c89}{yield} ()
\begin{DoxyCompactList}\small\item\em The calling process voluntarily gives up time to another process. \end{DoxyCompactList}\item 
static bool \hyperlink{class_s_c_i_run_1_1_thread_a445a24047882d0240e6f81bad73ba455}{is\-Initialized} ()
\item 
static void \hyperlink{class_s_c_i_run_1_1_thread_ac347c201b876cdeef7a6794a300b4b97}{set\-Default\-Abort\-Mode} (const char $\ast$abort\-Mode)
\item 
static void \hyperlink{class_s_c_i_run_1_1_thread_a25a40b6614565f755233080a384c35f1}{initialize} ()
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_s_c_i_run_1_1_thread_aed0099b61100d52db244032a2f948b43}{Runnable}
\item 
class \hyperlink{class_s_c_i_run_1_1_thread_ab270e49e575fdf0fe1a4f2ee911df116}{Condition\-Variable}
\item 
class \hyperlink{class_s_c_i_run_1_1_thread_a65943e7d20a5488ffce0e2c4b56d5f2e}{Recursive\-Mutex}
\item 
class \hyperlink{class_s_c_i_run_1_1_thread_a0299a51a8b97fb3200509d92ba10fa2c}{Mutex}
\item 
struct \hyperlink{class_s_c_i_run_1_1_thread_a95be9530b663a7ede498565ad4eb1bd8}{Thread\-\_\-private}
\item 
class \hyperlink{class_s_c_i_run_1_1_thread_a06795017a3bdefcc470704bd5a9ad0b1}{System\-Call\-Manager}
\item 
void \hyperlink{class_s_c_i_run_1_1_thread_ab86d4937301f8120e54572ca46fb4f7d}{Thread\-\_\-run} (\hyperlink{class_s_c_i_run_1_1_thread}{Thread} $\ast$t)
\item 
void \hyperlink{class_s_c_i_run_1_1_thread_afda7d6cf0fa4a6e9fb740776ce35732e}{Thread\-\_\-shutdown} (\hyperlink{class_s_c_i_run_1_1_thread}{Thread} $\ast$, bool)
\item 
void $\ast$ \hyperlink{class_s_c_i_run_1_1_thread_aeb0f0b4edf40bedd068e191ab757d558}{run\-\_\-threads} (void $\ast$priv\-\_\-v)
\item 
void \hyperlink{class_s_c_i_run_1_1_thread_acf6c4490040d30bb34b89a10419a6a4f}{handle\-\_\-abort\-\_\-signals} (int, siginfo\-\_\-t $\ast$, void $\ast$)
\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a445de113625d75b6588113dc78870ca1}{handle\-\_\-quit} (int)
\item 
void \hyperlink{class_s_c_i_run_1_1_thread_afd5fcbbb5014fc85be53ac1f6a66061c}{handle\-\_\-siguser2} (int)
\item 
void \hyperlink{class_s_c_i_run_1_1_thread_ab29773eb3416497ad94e6772373e20f8}{install\-\_\-signal\-\_\-handlers} ()
\item 
void \hyperlink{class_s_c_i_run_1_1_thread_a3eb33d11678d6b2a89ca3cb50c3eca19}{exit\-\_\-handler} ()
\end{DoxyCompactItemize}


\subsection{Detailed Description}
The \hyperlink{class_s_c_i_run_1_1_thread}{Thread} class provides a new context in which to run. A single Runnable class is attached to a single \hyperlink{class_s_c_i_run_1_1_thread}{Thread} class, which are executed in another thread. 

\subsection{Member Enumeration Documentation}
\hypertarget{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Active\-State@{Active\-State}}
\index{Active\-State@{Active\-State}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Active\-State}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf Active\-State}}}\label{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834}


Possible thread start states. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{Activated@{Activated}!S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}}\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Activated@{Activated}}\item[{\em 
\hypertarget{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834aed92813456b4cfc1005edc3b2c136a25}{Activated}\label{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834aed92813456b4cfc1005edc3b2c136a25}
}]\index{Stopped@{Stopped}!S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}}\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Stopped@{Stopped}}\item[{\em 
\hypertarget{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834a4d049c6d45e08a294523df186ad77a75}{Stopped}\label{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834a4d049c6d45e08a294523df186ad77a75}
}]\index{Not\-Activated@{Not\-Activated}!S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}}\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Not\-Activated@{Not\-Activated}}\item[{\em 
\hypertarget{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834a3ddcb9d00afd275be773764a61348e80}{Not\-Activated}\label{class_s_c_i_run_1_1_thread_aefc8378ef88030349d44d0da88a3a834a3ddcb9d00afd275be773764a61348e80}
}]\end{description}
\end{Desc}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_s_c_i_run_1_1_thread_a2e9bbbdc835bfa773036dacdd8d9ef3a}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Thread@{Thread}}
\index{Thread@{Thread}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Thread}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Thread} (
\begin{DoxyParamCaption}
\item[{{\bf Runnable} $\ast$}]{runner, }
\item[{const char $\ast$}]{name, }
\item[{{\bf Thread\-Group} $\ast$}]{group = {\ttfamily 0}, }
\item[{{\bf Active\-State}}]{state = {\ttfamily {\bf Activated}}, }
\item[{unsigned long long}]{stack\-\_\-size = {\ttfamily DEFAULT\-\_\-STACKSIZE}}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a2e9bbbdc835bfa773036dacdd8d9ef3a}
Create a thread, which will execute the {\bfseries run()} method in the {\bfseries runner} object. The thread {\bfseries name} is used for identification purposes, and does not need to be unique with respect to other threads. {\bfseries Group} specifies the \hyperlink{class_s_c_i_run_1_1_thread_group}{Thread\-Group} that to which this thread should belong. If no group is specified (group==0), the default group is used. 

\subsection{Member Function Documentation}
\hypertarget{class_s_c_i_run_1_1_thread_a3110ce5ac10d2a1ba107cfdf0ee6cc39}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!activate@{activate}}
\index{activate@{activate}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{activate}]{\setlength{\rightskip}{0pt plus 5cm}void activate (
\begin{DoxyParamCaption}
\item[{bool}]{stopped}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a3110ce5ac10d2a1ba107cfdf0ee6cc39}
If the thread is started in the the Not\-Activated state, use this to activate the thread (the argument should be false). \hypertarget{class_s_c_i_run_1_1_thread_af211ed868febcf6038b73fedb784429e}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!could\-Block@{could\-Block}}
\index{could\-Block@{could\-Block}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{could\-Block}]{\setlength{\rightskip}{0pt plus 5cm}static int could\-Block (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{why}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_af211ed868febcf6038b73fedb784429e}
Mark a section as one that could block for debugging purposes. The {\bfseries int} that is returned should be passed into {\itshape \hyperlink{class_s_c_i_run_1_1_thread_a41b6d16878bf6b6f9cb54abeaa81d306}{could\-Block\-Done(int)}} when the section has completed. This will typically not be used outside of the thread implementation. \hypertarget{class_s_c_i_run_1_1_thread_a41b6d16878bf6b6f9cb54abeaa81d306}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!could\-Block\-Done@{could\-Block\-Done}}
\index{could\-Block\-Done@{could\-Block\-Done}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{could\-Block\-Done}]{\setlength{\rightskip}{0pt plus 5cm}static void could\-Block\-Done (
\begin{DoxyParamCaption}
\item[{int}]{restore}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a41b6d16878bf6b6f9cb54abeaa81d306}
Mark the end of a selection that could block. {\itshape restore} was returned from a previous invocation of the above {\bfseries could\-Block}. \hypertarget{class_s_c_i_run_1_1_thread_ac295bade8aee589f6718dfa79edc2a34}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!detach@{detach}}
\index{detach@{detach}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{detach}]{\setlength{\rightskip}{0pt plus 5cm}void detach (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_ac295bade8aee589f6718dfa79edc2a34}
Arrange to have the thread deleted automatically at exit. The pointer to the thread should not be used by any other threads once this has been called. \hypertarget{class_s_c_i_run_1_1_thread_a358d2e2397ca11ccd17553e3c40e7901}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!exit@{exit}}
\index{exit@{exit}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{exit}]{\setlength{\rightskip}{0pt plus 5cm}void exit (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a358d2e2397ca11ccd17553e3c40e7901}


Exit the currently running thread. 

\hypertarget{class_s_c_i_run_1_1_thread_af473e29fa8217a3bc4982f250fbc3ee3}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!exit\-All@{exit\-All}}
\index{exit\-All@{exit\-All}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{exit\-All}]{\setlength{\rightskip}{0pt plus 5cm}void exit\-All (
\begin{DoxyParamCaption}
\item[{int}]{code}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_af473e29fa8217a3bc4982f250fbc3ee3}


Kill all threads and exit with {\bfseries code}. 

\hypertarget{class_s_c_i_run_1_1_thread_ad1f9a8d7d86fadb1e9db61b30ed56d72}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!get\-Runnable@{get\-Runnable}}
\index{get\-Runnable@{get\-Runnable}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{get\-Runnable}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Runnable}$\ast$ get\-Runnable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_ad1f9a8d7d86fadb1e9db61b30ed56d72}


Return the {\bfseries Runnable} associated with this thread. 

\hypertarget{class_s_c_i_run_1_1_thread_a19633c553d96fe53b14f9da466db36c7}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!get\-Stack\-Size@{get\-Stack\-Size}}
\index{get\-Stack\-Size@{get\-Stack\-Size}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{get\-Stack\-Size}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long long get\-Stack\-Size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{class_s_c_i_run_1_1_thread_a19633c553d96fe53b14f9da466db36c7}


Returns the stack size for the thread. 

\hypertarget{class_s_c_i_run_1_1_thread_a59bdb53153be21455163a4da08f11356}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!get\-Thread\-Group@{get\-Thread\-Group}}
\index{get\-Thread\-Group@{get\-Thread\-Group}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{get\-Thread\-Group}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Thread\-Group}$\ast$ get\-Thread\-Group (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a59bdb53153be21455163a4da08f11356}


Return the {\bfseries \hyperlink{class_s_c_i_run_1_1_thread_group}{Thread\-Group}} associated with this thread. 

\hypertarget{class_s_c_i_run_1_1_thread_a956816e041c785d5f7868d0c42c4feae}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!get\-Thread\-Name@{get\-Thread\-Name}}
\index{get\-Thread\-Name@{get\-Thread\-Name}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{get\-Thread\-Name}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ get\-Thread\-Name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{class_s_c_i_run_1_1_thread_a956816e041c785d5f7868d0c42c4feae}


Returns the name of the thread. 

\hypertarget{class_s_c_i_run_1_1_thread_a25a40b6614565f755233080a384c35f1}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!initialize@{initialize}}
\index{initialize@{initialize}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{initialize}]{\setlength{\rightskip}{0pt plus 5cm}void initialize (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a25a40b6614565f755233080a384c35f1}
\hypertarget{class_s_c_i_run_1_1_thread_ae1005aff32744ee0c95e918e24dced0d}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!is\-Daemon@{is\-Daemon}}
\index{is\-Daemon@{is\-Daemon}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{is\-Daemon}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Daemon (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{class_s_c_i_run_1_1_thread_ae1005aff32744ee0c95e918e24dced0d}


Returns true if the thread is tagged as a daemon thread. 

\hypertarget{class_s_c_i_run_1_1_thread_afd7fbb31c74e541aad6d286b1906a48a}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!is\-Detached@{is\-Detached}}
\index{is\-Detached@{is\-Detached}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{is\-Detached}]{\setlength{\rightskip}{0pt plus 5cm}bool is\-Detached (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{class_s_c_i_run_1_1_thread_afd7fbb31c74e541aad6d286b1906a48a}


Returns true if the thread is detached. 

\hypertarget{class_s_c_i_run_1_1_thread_a445a24047882d0240e6f81bad73ba455}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!is\-Initialized@{is\-Initialized}}
\index{is\-Initialized@{is\-Initialized}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{is\-Initialized}]{\setlength{\rightskip}{0pt plus 5cm}static bool is\-Initialized (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a445a24047882d0240e6f81bad73ba455}
Return true if the thread library has been initialized. This will typically not be used outside of the thread implementation. \hypertarget{class_s_c_i_run_1_1_thread_a6c7abfff648dad193674fc432ad4840d}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!join@{join}}
\index{join@{join}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{join}]{\setlength{\rightskip}{0pt plus 5cm}void join (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a6c7abfff648dad193674fc432ad4840d}
Blocks the calling thread until this thead has finished executing. You cannot join detached threads or daemon threads. \hypertarget{class_s_c_i_run_1_1_thread_a07b1e569f57a65ecc7f1a89bf95be9dd}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!migrate@{migrate}}
\index{migrate@{migrate}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{migrate}]{\setlength{\rightskip}{0pt plus 5cm}void migrate (
\begin{DoxyParamCaption}
\item[{int}]{proc}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a07b1e569f57a65ecc7f1a89bf95be9dd}
Request that the thread migrate to processor {\itshape proc}. If {\itshape proc} is -\/1, then the thread is free to run anywhere. \hypertarget{class_s_c_i_run_1_1_thread_a75517c1e7b5bcbc7e3d53b1bae22e517}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!nice\-Abort@{nice\-Abort}}
\index{nice\-Abort@{nice\-Abort}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{nice\-Abort}]{\setlength{\rightskip}{0pt plus 5cm}static void nice\-Abort (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{Context = {\ttfamily 0}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a75517c1e7b5bcbc7e3d53b1bae22e517}
Abort the current thread, or the process. Prints a message on stderr, and the user may choose one of\-: 
\begin{DoxyPre}continue(c)/dbx(d)/cvd(v)/kill thread(k)/exit(e)\end{DoxyPre}
 context is necesary on Windows to catch a segfault \hypertarget{class_s_c_i_run_1_1_thread_acf0ea028e9d2a757cd26b5e34ce2ca97}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!num\-Processors@{num\-Processors}}
\index{num\-Processors@{num\-Processors}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{num\-Processors}]{\setlength{\rightskip}{0pt plus 5cm}int num\-Processors (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_acf0ea028e9d2a757cd26b5e34ce2ca97}


Returns the number of processors on the system. 

\hypertarget{class_s_c_i_run_1_1_thread_a67edc5ea108cbde73d496e9c2f82e524}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Thread\-Group}$\ast$ parallel (
\begin{DoxyParamCaption}
\item[{{\bf Parallel\-Base} \&}]{helper, }
\item[{int}]{nthreads, }
\item[{bool}]{block, }
\item[{{\bf Thread\-Group} $\ast$}]{thread\-Group = {\ttfamily 0}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a67edc5ea108cbde73d496e9c2f82e524}
Start up several threads that will run in parallel. A new {\bfseries \hyperlink{class_s_c_i_run_1_1_thread_group}{Thread\-Group}} is created as a child of the optional parent. If {\itshape block} is true, then the caller will block until all of the threads return. Otherwise, the call will return immediately. \hypertarget{class_s_c_i_run_1_1_thread_a8d122387e45953f8984e78ec03b1cfa3}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}static 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]}, {\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a8d122387e45953f8984e78ec03b1cfa3}
Start up several threads that will run in parallel. If {\itshape block} is true, then the caller will block until all of the threads return. Otherwise, the call will return immediately. \hypertarget{class_s_c_i_run_1_1_thread_a6f5f90fa609c4dbf881d267b1c2df294}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}static 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]}, {\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a6f5f90fa609c4dbf881d267b1c2df294}


Another overloaded version of parallel that passes 1 argument. 

\hypertarget{class_s_c_i_run_1_1_thread_a2013512b74e89e0ac323edf323c35d6c}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}static 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]}, {\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a2013512b74e89e0ac323edf323c35d6c}


Another overloaded version of parallel that passes 2 arguments. 

\hypertarget{class_s_c_i_run_1_1_thread_a3227ca1ee2f9b3dc1678bbfa31dfbf5e}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!parallel@{parallel}}
\index{parallel@{parallel}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{parallel}]{\setlength{\rightskip}{0pt plus 5cm}static 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]}, {\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a3227ca1ee2f9b3dc1678bbfa31dfbf5e}


Another overloaded version of parallel that passes 3 arguments. 

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


Another overloaded version of parallel that passes 4 arguments. 

\hypertarget{class_s_c_i_run_1_1_thread_a41de8150eff044a237990c271d57ea27}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!resume@{resume}}
\index{resume@{resume}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{resume}]{\setlength{\rightskip}{0pt plus 5cm}void resume (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a41de8150eff044a237990c271d57ea27}


Resume the thread. 

\hypertarget{class_s_c_i_run_1_1_thread_a0b84e933474ce4e3a2e8477762dc0faa}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!self@{self}}
\index{self@{self}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{self}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Thread} $\ast$ self (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a0b84e933474ce4e3a2e8477762dc0faa}


Returns a pointer to the currently running thread. 

\hypertarget{class_s_c_i_run_1_1_thread_a2b71d7f2026a2cbf836ec32bc26e3631}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!set\-Daemon@{set\-Daemon}}
\index{set\-Daemon@{set\-Daemon}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{set\-Daemon}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Daemon (
\begin{DoxyParamCaption}
\item[{bool}]{to = {\ttfamily true}}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a2b71d7f2026a2cbf836ec32bc26e3631}
Flag the thread as a daemon thread. When all non-\/deamon threads exit, the program will exit. \hypertarget{class_s_c_i_run_1_1_thread_ac347c201b876cdeef7a6794a300b4b97}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!set\-Default\-Abort\-Mode@{set\-Default\-Abort\-Mode}}
\index{set\-Default\-Abort\-Mode@{set\-Default\-Abort\-Mode}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{set\-Default\-Abort\-Mode}]{\setlength{\rightskip}{0pt plus 5cm}static void set\-Default\-Abort\-Mode (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{abort\-Mode}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_ac347c201b876cdeef7a6794a300b4b97}
set to \char`\"{}exit\char`\"{} (or something else) so we don't have to always wait for the user to input something \hypertarget{class_s_c_i_run_1_1_thread_a67a7ed261e8e3e98e7650fd304937fae}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!set\-Stack\-Size@{set\-Stack\-Size}}
\index{set\-Stack\-Size@{set\-Stack\-Size}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{set\-Stack\-Size}]{\setlength{\rightskip}{0pt plus 5cm}void set\-Stack\-Size (
\begin{DoxyParamCaption}
\item[{unsigned long long}]{stack\-Size}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a67a7ed261e8e3e98e7650fd304937fae}
Set the stack size for a particular thread. In order to use this thread, you must create the thread in the Not\-Activated state, set the stack size, and then start the thread using activate(false). Setting the stack size for a thread that is running or has ever been run, will throw an exception. The units are in bytes. \hypertarget{class_s_c_i_run_1_1_thread_a8c528baf37154d347366083f0f816846}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!stop@{stop}}
\index{stop@{stop}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{stop}]{\setlength{\rightskip}{0pt plus 5cm}void stop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_thread_a8c528baf37154d347366083f0f816846}


Stop the thread. 

\hypertarget{class_s_c_i_run_1_1_thread_a58c8b2ad0ea491a6642e5e1cbd358c89}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!yield@{yield}}
\index{yield@{yield}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{yield}]{\setlength{\rightskip}{0pt plus 5cm}void yield (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{class_s_c_i_run_1_1_thread_a58c8b2ad0ea491a6642e5e1cbd358c89}


The calling process voluntarily gives up time to another process. 



\subsection{Friends And Related Function Documentation}
\hypertarget{class_s_c_i_run_1_1_thread_ab270e49e575fdf0fe1a4f2ee911df116}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Condition\-Variable@{Condition\-Variable}}
\index{Condition\-Variable@{Condition\-Variable}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Condition\-Variable}]{\setlength{\rightskip}{0pt plus 5cm}friend class {\bf Condition\-Variable}\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_ab270e49e575fdf0fe1a4f2ee911df116}
\hypertarget{class_s_c_i_run_1_1_thread_a3eb33d11678d6b2a89ca3cb50c3eca19}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!exit\-\_\-handler@{exit\-\_\-handler}}
\index{exit\-\_\-handler@{exit\-\_\-handler}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{exit\-\_\-handler}]{\setlength{\rightskip}{0pt plus 5cm}void exit\-\_\-handler (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_a3eb33d11678d6b2a89ca3cb50c3eca19}
\hypertarget{class_s_c_i_run_1_1_thread_acf6c4490040d30bb34b89a10419a6a4f}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!handle\-\_\-abort\-\_\-signals@{handle\-\_\-abort\-\_\-signals}}
\index{handle\-\_\-abort\-\_\-signals@{handle\-\_\-abort\-\_\-signals}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{handle\-\_\-abort\-\_\-signals}]{\setlength{\rightskip}{0pt plus 5cm}void handle\-\_\-abort\-\_\-signals (
\begin{DoxyParamCaption}
\item[{int}]{sig, }
\item[{siginfo\-\_\-t $\ast$}]{info, }
\item[{void $\ast$}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_acf6c4490040d30bb34b89a10419a6a4f}
\hypertarget{class_s_c_i_run_1_1_thread_a445de113625d75b6588113dc78870ca1}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!handle\-\_\-quit@{handle\-\_\-quit}}
\index{handle\-\_\-quit@{handle\-\_\-quit}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{handle\-\_\-quit}]{\setlength{\rightskip}{0pt plus 5cm}void handle\-\_\-quit (
\begin{DoxyParamCaption}
\item[{int}]{sig}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_a445de113625d75b6588113dc78870ca1}
\hypertarget{class_s_c_i_run_1_1_thread_afd5fcbbb5014fc85be53ac1f6a66061c}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!handle\-\_\-siguser2@{handle\-\_\-siguser2}}
\index{handle\-\_\-siguser2@{handle\-\_\-siguser2}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{handle\-\_\-siguser2}]{\setlength{\rightskip}{0pt plus 5cm}void handle\-\_\-siguser2 (
\begin{DoxyParamCaption}
\item[{int}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_afd5fcbbb5014fc85be53ac1f6a66061c}
Make sure the exiting information is stored on the local stack In case we cannot access the structures any more

If not exiting tell we are running again \hypertarget{class_s_c_i_run_1_1_thread_ab29773eb3416497ad94e6772373e20f8}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!install\-\_\-signal\-\_\-handlers@{install\-\_\-signal\-\_\-handlers}}
\index{install\-\_\-signal\-\_\-handlers@{install\-\_\-signal\-\_\-handlers}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{install\-\_\-signal\-\_\-handlers}]{\setlength{\rightskip}{0pt plus 5cm}void install\-\_\-signal\-\_\-handlers (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_ab29773eb3416497ad94e6772373e20f8}
\hypertarget{class_s_c_i_run_1_1_thread_a0299a51a8b97fb3200509d92ba10fa2c}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Mutex@{Mutex}}
\index{Mutex@{Mutex}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Mutex}]{\setlength{\rightskip}{0pt plus 5cm}friend class {\bf Mutex}\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_a0299a51a8b97fb3200509d92ba10fa2c}
\hypertarget{class_s_c_i_run_1_1_thread_a65943e7d20a5488ffce0e2c4b56d5f2e}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Recursive\-Mutex@{Recursive\-Mutex}}
\index{Recursive\-Mutex@{Recursive\-Mutex}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Recursive\-Mutex}]{\setlength{\rightskip}{0pt plus 5cm}friend class {\bf Recursive\-Mutex}\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_a65943e7d20a5488ffce0e2c4b56d5f2e}
\hypertarget{class_s_c_i_run_1_1_thread_aeb0f0b4edf40bedd068e191ab757d558}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!run\-\_\-threads@{run\-\_\-threads}}
\index{run\-\_\-threads@{run\-\_\-threads}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{run\-\_\-threads}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ run\-\_\-threads (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{priv\-\_\-v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_aeb0f0b4edf40bedd068e191ab757d558}
\hypertarget{class_s_c_i_run_1_1_thread_aed0099b61100d52db244032a2f948b43}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Runnable@{Runnable}}
\index{Runnable@{Runnable}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Runnable}]{\setlength{\rightskip}{0pt plus 5cm}friend class Runnable\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_aed0099b61100d52db244032a2f948b43}
\hypertarget{class_s_c_i_run_1_1_thread_a06795017a3bdefcc470704bd5a9ad0b1}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!System\-Call\-Manager@{System\-Call\-Manager}}
\index{System\-Call\-Manager@{System\-Call\-Manager}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{System\-Call\-Manager}]{\setlength{\rightskip}{0pt plus 5cm}friend class System\-Call\-Manager\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_a06795017a3bdefcc470704bd5a9ad0b1}
\hypertarget{class_s_c_i_run_1_1_thread_a95be9530b663a7ede498565ad4eb1bd8}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Thread\-\_\-private@{Thread\-\_\-private}}
\index{Thread\-\_\-private@{Thread\-\_\-private}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Thread\-\_\-private}]{\setlength{\rightskip}{0pt plus 5cm}friend struct {\bf Thread\-\_\-private}\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_a95be9530b663a7ede498565ad4eb1bd8}
\hypertarget{class_s_c_i_run_1_1_thread_ab86d4937301f8120e54572ca46fb4f7d}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Thread\-\_\-run@{Thread\-\_\-run}}
\index{Thread\-\_\-run@{Thread\-\_\-run}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Thread\-\_\-run}]{\setlength{\rightskip}{0pt plus 5cm}void Thread\-\_\-run (
\begin{DoxyParamCaption}
\item[{{\bf Thread} $\ast$}]{t}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_ab86d4937301f8120e54572ca46fb4f7d}
\hypertarget{class_s_c_i_run_1_1_thread_afda7d6cf0fa4a6e9fb740776ce35732e}{\index{S\-C\-I\-Run\-::\-Thread@{S\-C\-I\-Run\-::\-Thread}!Thread\-\_\-shutdown@{Thread\-\_\-shutdown}}
\index{Thread\-\_\-shutdown@{Thread\-\_\-shutdown}!SCIRun::Thread@{S\-C\-I\-Run\-::\-Thread}}
\subsubsection[{Thread\-\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}void Thread\-\_\-shutdown (
\begin{DoxyParamCaption}
\item[{{\bf Thread} $\ast$}]{thread, }
\item[{bool}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [friend]}}}\label{class_s_c_i_run_1_1_thread_afda7d6cf0fa4a6e9fb740776ce35732e}


The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Core/\-Thread/\-Legacy/\hyperlink{_thread_8h}{Thread.\-h}\item 
Core/\-Thread/\-Legacy/\hyperlink{_thread__none_8cc}{Thread\-\_\-none.\-cc}\item 
Core/\-Thread/\-Legacy/\hyperlink{_thread__pthreads_8cc}{Thread\-\_\-pthreads.\-cc}\end{DoxyCompactItemize}
