\section{booster\+:\+:shared\+\_\+mutex Class Reference}
\label{classbooster_1_1shared__mutex}\index{booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}}


Shared mutex or a.\+k.\+a. Read-\/\+Write Lock.  




{\ttfamily \#include $<$booster/booster/thread.\+h$>$}

Inheritance diagram for booster\+:\+:shared\+\_\+mutex\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classbooster_1_1shared__mutex}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void {\bf lock} ()
\item 
void {\bf unique\+\_\+lock} ()
\item 
void {\bf shared\+\_\+lock} ()
\item 
void {\bf unlock} ()
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Shared mutex or a.\+k.\+a. Read-\/\+Write Lock. 

This class provides two options of locking unique -\/ nobody but me can use the object shared anybody with shared lock can use the object. 

\subsection{Member Function Documentation}
\index{booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}!lock@{lock}}
\index{lock@{lock}!booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}}
\subsubsection[{lock()}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::shared\+\_\+mutex\+::lock (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1shared__mutex_a578a8eefce76463f623384a0c3ec0cf4}
Same as \doxyref{unique\+\_\+lock()}{p.}{classbooster_1_1shared__mutex_ae8b360af3885be2081eef7eba21a3b52} \index{booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}!shared\+\_\+lock@{shared\+\_\+lock}}
\index{shared\+\_\+lock@{shared\+\_\+lock}!booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}}
\subsubsection[{shared\+\_\+lock()}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::shared\+\_\+mutex\+::shared\+\_\+lock (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1shared__mutex_af699d050ba6c25450a9e7c21dbe80f0e}
Acquire a shared lock on the object. \begin{DoxySeeAlso}{See also}
\doxyref{booster\+::shared\+\_\+lock}{p.}{classbooster_1_1shared__lock}
\end{DoxySeeAlso}
Note this function is not recursive \index{booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}!unique\+\_\+lock@{unique\+\_\+lock}}
\index{unique\+\_\+lock@{unique\+\_\+lock}!booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}}
\subsubsection[{unique\+\_\+lock()}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::shared\+\_\+mutex\+::unique\+\_\+lock (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1shared__mutex_ae8b360af3885be2081eef7eba21a3b52}
Acquire a unique lock on the object. \begin{DoxySeeAlso}{See also}
\doxyref{booster\+::unique\+\_\+lock}{p.}{classbooster_1_1unique__lock} 
\end{DoxySeeAlso}
\index{booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}!unlock@{unlock}}
\index{unlock@{unlock}!booster\+::shared\+\_\+mutex@{booster\+::shared\+\_\+mutex}}
\subsubsection[{unlock()}]{\setlength{\rightskip}{0pt plus 5cm}void booster\+::shared\+\_\+mutex\+::unlock (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}\label{classbooster_1_1shared__mutex_a91d7b9c750b217d064e7460a781e9a06}
Release the lock 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
booster/thread.\+h\end{DoxyCompactItemize}
