\hypertarget{class_s_c_i_run_1_1_crowd_monitor}{\section{Crowd\-Monitor Class Reference}
\label{class_s_c_i_run_1_1_crowd_monitor}\index{Crowd\-Monitor@{Crowd\-Monitor}}
}


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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_s_c_i_run_1_1_crowd_monitor_a85fcbc22e5c3ad390ffacdc421d76ee1}{Crowd\-Monitor} (const char $\ast$\hyperlink{_boost_graph_example_tests_8cc_a8ad72759d07f18eaf8f6690e5dfb747c}{name})
\item 
\hyperlink{class_s_c_i_run_1_1_crowd_monitor_aa633318d4381c6bd4fcc1545a7093509}{$\sim$\-Crowd\-Monitor} ()
\begin{DoxyCompactList}\small\item\em Destroy the \hyperlink{class_s_c_i_run_1_1_crowd_monitor}{Crowd\-Monitor}. \end{DoxyCompactList}\item 
void \hyperlink{class_s_c_i_run_1_1_crowd_monitor_ae779aa9ea7ed856ff36d049a8cc65b2d}{read\-Lock} ()
\item 
void \hyperlink{class_s_c_i_run_1_1_crowd_monitor_a2b771498e2ceb32e9b1eed4d9b6aff69}{read\-Unlock} ()
\item 
void \hyperlink{class_s_c_i_run_1_1_crowd_monitor_a21167128d52ec00ba5af8374f67fe0ec}{write\-Lock} ()
\item 
void \hyperlink{class_s_c_i_run_1_1_crowd_monitor_afe79556a7d0c7998519cb181cc9a3614}{write\-Unlock} ()
\end{DoxyCompactItemize}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_s_c_i_run_1_1_crowd_monitor_a85fcbc22e5c3ad390ffacdc421d76ee1}{\index{S\-C\-I\-Run\-::\-Crowd\-Monitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}!Crowd\-Monitor@{Crowd\-Monitor}}
\index{Crowd\-Monitor@{Crowd\-Monitor}!SCIRun::CrowdMonitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}}
\subsubsection[{Crowd\-Monitor}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Crowd\-Monitor} (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_crowd_monitor_a85fcbc22e5c3ad390ffacdc421d76ee1}
Create and initialize the \hyperlink{class_s_c_i_run_1_1_crowd_monitor}{Crowd\-Monitor}. {\itshape name} should be a static which describes the primitive for debugging purposes. \hypertarget{class_s_c_i_run_1_1_crowd_monitor_aa633318d4381c6bd4fcc1545a7093509}{\index{S\-C\-I\-Run\-::\-Crowd\-Monitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}!$\sim$\-Crowd\-Monitor@{$\sim$\-Crowd\-Monitor}}
\index{$\sim$\-Crowd\-Monitor@{$\sim$\-Crowd\-Monitor}!SCIRun::CrowdMonitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}}
\subsubsection[{$\sim$\-Crowd\-Monitor}]{\setlength{\rightskip}{0pt plus 5cm}$\sim${\bf Crowd\-Monitor} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_crowd_monitor_aa633318d4381c6bd4fcc1545a7093509}


Destroy the \hyperlink{class_s_c_i_run_1_1_crowd_monitor}{Crowd\-Monitor}. 



\subsection{Member Function Documentation}
\hypertarget{class_s_c_i_run_1_1_crowd_monitor_ae779aa9ea7ed856ff36d049a8cc65b2d}{\index{S\-C\-I\-Run\-::\-Crowd\-Monitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}!read\-Lock@{read\-Lock}}
\index{read\-Lock@{read\-Lock}!SCIRun::CrowdMonitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}}
\subsubsection[{read\-Lock}]{\setlength{\rightskip}{0pt plus 5cm}void read\-Lock (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_crowd_monitor_ae779aa9ea7ed856ff36d049a8cc65b2d}
Acquire the read-\/only lock associated with this {\bfseries \hyperlink{class_s_c_i_run_1_1_crowd_monitor}{Crowd\-Monitor}}. Multiple threads may hold the read-\/only lock simultaneously. \hypertarget{class_s_c_i_run_1_1_crowd_monitor_a2b771498e2ceb32e9b1eed4d9b6aff69}{\index{S\-C\-I\-Run\-::\-Crowd\-Monitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}!read\-Unlock@{read\-Unlock}}
\index{read\-Unlock@{read\-Unlock}!SCIRun::CrowdMonitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}}
\subsubsection[{read\-Unlock}]{\setlength{\rightskip}{0pt plus 5cm}void read\-Unlock (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_crowd_monitor_a2b771498e2ceb32e9b1eed4d9b6aff69}
Release the read-\/only lock obtained from {\itshape read\-Lock}. Undefined behavior may result when {\itshape read\-Unlock} is called and a {\itshape read\-Lock} is not held by the calling \hyperlink{class_s_c_i_run_1_1_thread}{Thread}. \hypertarget{class_s_c_i_run_1_1_crowd_monitor_a21167128d52ec00ba5af8374f67fe0ec}{\index{S\-C\-I\-Run\-::\-Crowd\-Monitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}!write\-Lock@{write\-Lock}}
\index{write\-Lock@{write\-Lock}!SCIRun::CrowdMonitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}}
\subsubsection[{write\-Lock}]{\setlength{\rightskip}{0pt plus 5cm}void write\-Lock (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_crowd_monitor_a21167128d52ec00ba5af8374f67fe0ec}
Acquire the write lock associated with this {\bfseries \hyperlink{class_s_c_i_run_1_1_crowd_monitor}{Crowd\-Monitor}}. Only one thread may hold the write lock, and during the time that this lock is not held, no threads may hold the read-\/only lock. \hypertarget{class_s_c_i_run_1_1_crowd_monitor_afe79556a7d0c7998519cb181cc9a3614}{\index{S\-C\-I\-Run\-::\-Crowd\-Monitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}!write\-Unlock@{write\-Unlock}}
\index{write\-Unlock@{write\-Unlock}!SCIRun::CrowdMonitor@{S\-C\-I\-Run\-::\-Crowd\-Monitor}}
\subsubsection[{write\-Unlock}]{\setlength{\rightskip}{0pt plus 5cm}void write\-Unlock (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_crowd_monitor_afe79556a7d0c7998519cb181cc9a3614}
Release the write-\/only lock obtained from {\itshape write\-Lock}. Undefined behavior may result when {\itshape write\-Unlock} is called and a {\itshape write\-Lock} is not held by the calling \hyperlink{class_s_c_i_run_1_1_thread}{Thread}. 

The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
Core/\-Thread/\-Legacy/\hyperlink{_crowd_monitor_8h}{Crowd\-Monitor.\-h}\item 
Core/\-Thread/\-Legacy/\hyperlink{_crowd_monitor__pthreads_8cc}{Crowd\-Monitor\-\_\-pthreads.\-cc}\end{DoxyCompactItemize}
