\hypertarget{_thread__pthreads_8cc}{\section{Core/\-Thread/\-Legacy/\-Thread\-\_\-pthreads.cc File Reference}
\label{_thread__pthreads_8cc}\index{Core/\-Thread/\-Legacy/\-Thread\-\_\-pthreads.\-cc@{Core/\-Thread/\-Legacy/\-Thread\-\_\-pthreads.\-cc}}
}


Posix threads implementation of the thread library.  


{\ttfamily \#include $<$algorithm$>$}\\*
{\ttfamily \#include $<$cstring$>$}\\*
{\ttfamily \#include $<$errno.\-h$>$}\\*
{\ttfamily \#include $<$signal.\-h$>$}\\*
{\ttfamily \#include $<$cstdlib$>$}\\*
{\ttfamily \#include $<$fstream$>$}\\*
{\ttfamily \#include $<$iostream$>$}\\*
{\ttfamily \#include $<$string$>$}\\*
{\ttfamily \#include $<$unistd.\-h$>$}\\*
{\ttfamily \#include $<$sci\-\_\-debug.\-h$>$}\\*
{\ttfamily \#include $<$sci\-\_\-defs/bits\-\_\-defs.\-h$>$}\\*
{\ttfamily \#include $<$pthread.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Thread.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Mutex.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Atomic\-Counter.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Barrier.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Cleanup\-Manager.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Condition\-Variable.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Recursive\-Mutex.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Semaphore.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Thread\-Error.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Thread\-Group.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Work\-Queue.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Thread\-\_\-unix.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Time.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Thread/\-Crowd\-Monitor\-\_\-default.\-cc$>$}\\*
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_s_c_i_run_1_1_thread__private}{Thread\-\_\-private}
\item 
class \hyperlink{class_s_c_i_run_1_1_mutex__private}{Mutex\-\_\-private}
\item 
class \hyperlink{class_s_c_i_run_1_1_recursive_mutex__private}{Recursive\-Mutex\-\_\-private}
\item 
class \hyperlink{class_s_c_i_run_1_1_semaphore__private}{Semaphore\-\_\-private}
\item 
class \hyperlink{struct_s_c_i_run_1_1_condition_variable__private}{Condition\-Variable\-\_\-private}
\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
\hyperlink{namespace_s_c_i_run}{S\-C\-I\-Run}
\begin{DoxyCompactList}\small\item\em S\-T\-L datatypes needed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{_thread__pthreads_8cc_a369266c24eacffb87046522897a570d5}{\-\_\-\-G\-N\-U\-\_\-\-S\-O\-U\-R\-C\-E}
\item 
\#define \hyperlink{_thread__pthreads_8cc_a1afa73d7fa95d01675c545859245071b}{\-\_\-\-\_\-\-U\-S\-E\-\_\-\-U\-N\-I\-X98}
\item 
\#define \hyperlink{_thread__pthreads_8cc_a715e9644a7183d98cb2c9dd41cb89645}{P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E}~P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E\-\_\-\-N\-P
\item 
\#define \hyperlink{_thread__pthreads_8cc_a0bbb128e91ef984f0385b00036a74d32}{M\-A\-X\-B\-S\-T\-A\-C\-K}~10
\item 
\#define \hyperlink{_thread__pthreads_8cc_ab9eade334fd8a98c128802aec7e9191c}{M\-A\-X\-T\-H\-R\-E\-A\-D\-S}~4000
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{namespace_s_c_i_run_afe048dff9bf91a4b09c8789f1a500a1a}{Thread\-\_\-shutdown} (\hyperlink{class_s_c_i_run_1_1_thread}{Thread} $\ast$thread, bool)
\item 
void \hyperlink{namespace_s_c_i_run_a3917def4c21c21db50eb3f4515008055}{Thread\-\_\-run} (\hyperlink{class_s_c_i_run_1_1_thread}{Thread} $\ast$t)
\item 
void $\ast$ \hyperlink{namespace_s_c_i_run_a008927cd739fd5628f057a9988b3f776}{run\-\_\-threads} (void $\ast$priv\-\_\-v)
\item 
void \hyperlink{namespace_s_c_i_run_ab1c47f7e10259436b0b82be39640178c}{handle\-\_\-abort\-\_\-signals} (int sig, siginfo\-\_\-t $\ast$info, void $\ast$)
\item 
void \hyperlink{namespace_s_c_i_run_a96ceff27d3f9aaa31acd0262767a03a9}{handle\-\_\-quit} (int sig)
\item 
void \hyperlink{namespace_s_c_i_run_a7f05e3c07cbaaa3e07bff208ca52b790}{handle\-\_\-siguser2} (int)
\item 
void \hyperlink{namespace_s_c_i_run_a89e31acc4335204708920feae2e3a7bb}{exit\-\_\-handler} ()
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Posix threads implementation of the thread library. \begin{DoxyAuthor}{Author}
Steve Parker Department of Computer Science University of Utah 
\end{DoxyAuthor}
\begin{DoxyDate}{Date}
June 1997 
\end{DoxyDate}


\subsection{Macro Definition Documentation}
\hypertarget{_thread__pthreads_8cc_a1afa73d7fa95d01675c545859245071b}{\index{Thread\-\_\-pthreads.\-cc@{Thread\-\_\-pthreads.\-cc}!\-\_\-\-\_\-\-U\-S\-E\-\_\-\-U\-N\-I\-X98@{\-\_\-\-\_\-\-U\-S\-E\-\_\-\-U\-N\-I\-X98}}
\index{\-\_\-\-\_\-\-U\-S\-E\-\_\-\-U\-N\-I\-X98@{\-\_\-\-\_\-\-U\-S\-E\-\_\-\-U\-N\-I\-X98}!Thread_pthreads.cc@{Thread\-\_\-pthreads.\-cc}}
\subsubsection[{\-\_\-\-\_\-\-U\-S\-E\-\_\-\-U\-N\-I\-X98}]{\setlength{\rightskip}{0pt plus 5cm}\#define \-\_\-\-\_\-\-U\-S\-E\-\_\-\-U\-N\-I\-X98}}\label{_thread__pthreads_8cc_a1afa73d7fa95d01675c545859245071b}
\hypertarget{_thread__pthreads_8cc_a369266c24eacffb87046522897a570d5}{\index{Thread\-\_\-pthreads.\-cc@{Thread\-\_\-pthreads.\-cc}!\-\_\-\-G\-N\-U\-\_\-\-S\-O\-U\-R\-C\-E@{\-\_\-\-G\-N\-U\-\_\-\-S\-O\-U\-R\-C\-E}}
\index{\-\_\-\-G\-N\-U\-\_\-\-S\-O\-U\-R\-C\-E@{\-\_\-\-G\-N\-U\-\_\-\-S\-O\-U\-R\-C\-E}!Thread_pthreads.cc@{Thread\-\_\-pthreads.\-cc}}
\subsubsection[{\-\_\-\-G\-N\-U\-\_\-\-S\-O\-U\-R\-C\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define \-\_\-\-G\-N\-U\-\_\-\-S\-O\-U\-R\-C\-E}}\label{_thread__pthreads_8cc_a369266c24eacffb87046522897a570d5}
\hypertarget{_thread__pthreads_8cc_a0bbb128e91ef984f0385b00036a74d32}{\index{Thread\-\_\-pthreads.\-cc@{Thread\-\_\-pthreads.\-cc}!M\-A\-X\-B\-S\-T\-A\-C\-K@{M\-A\-X\-B\-S\-T\-A\-C\-K}}
\index{M\-A\-X\-B\-S\-T\-A\-C\-K@{M\-A\-X\-B\-S\-T\-A\-C\-K}!Thread_pthreads.cc@{Thread\-\_\-pthreads.\-cc}}
\subsubsection[{M\-A\-X\-B\-S\-T\-A\-C\-K}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-B\-S\-T\-A\-C\-K~10}}\label{_thread__pthreads_8cc_a0bbb128e91ef984f0385b00036a74d32}
\hypertarget{_thread__pthreads_8cc_ab9eade334fd8a98c128802aec7e9191c}{\index{Thread\-\_\-pthreads.\-cc@{Thread\-\_\-pthreads.\-cc}!M\-A\-X\-T\-H\-R\-E\-A\-D\-S@{M\-A\-X\-T\-H\-R\-E\-A\-D\-S}}
\index{M\-A\-X\-T\-H\-R\-E\-A\-D\-S@{M\-A\-X\-T\-H\-R\-E\-A\-D\-S}!Thread_pthreads.cc@{Thread\-\_\-pthreads.\-cc}}
\subsubsection[{M\-A\-X\-T\-H\-R\-E\-A\-D\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-T\-H\-R\-E\-A\-D\-S~4000}}\label{_thread__pthreads_8cc_ab9eade334fd8a98c128802aec7e9191c}
\hypertarget{_thread__pthreads_8cc_a715e9644a7183d98cb2c9dd41cb89645}{\index{Thread\-\_\-pthreads.\-cc@{Thread\-\_\-pthreads.\-cc}!P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E@{P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E}}
\index{P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E@{P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E}!Thread_pthreads.cc@{Thread\-\_\-pthreads.\-cc}}
\subsubsection[{P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E~P\-T\-H\-R\-E\-A\-D\-\_\-\-M\-U\-T\-E\-X\-\_\-\-R\-E\-C\-U\-R\-S\-I\-V\-E\-\_\-\-N\-P}}\label{_thread__pthreads_8cc_a715e9644a7183d98cb2c9dd41cb89645}
