]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/mutex.tex
remove C++ comment
[wxWidgets.git] / docs / latex / wx / mutex.tex
index 5c18a2a08dc07590207e300d9c866f50c9b9a2b4..7f455980051972a19666162275480cfba9678278 100644 (file)
@@ -8,13 +8,14 @@ resource as only one thread at a time can own a mutex object.
 Mutexes may be recursive in the sense that a thread can lock a mutex which it
 had already locked before (instead of dead locking the entire process in this
 situation by starting to wait on a mutex which will never be released while the
-thread is waiting) but using them is not recommended and they are {\bf not}
-recursive by default. The reason for this is that recursive mutexes are not
-supported by all Unix flavours and, worse, they cannot be used with 
-\helpref{wxCondition}{wxcondition}.
-
-For example, when several thread use the data stored in the linked list,
-modifications to the list should be only allowed to one thread at a time
+thread is waiting) but using them is not recommended under Unix and they are 
+{\bf not} recursive there by default. The reason for this is that recursive
+mutexes are not supported by all Unix flavours and, worse, they cannot be used
+with \helpref{wxCondition}{wxcondition}. On the other hand, Win32 mutexes are
+always recursive.
+
+For example, when several threads use the data stored in the linked list,
+modifications to the list should only be allowed to one thread at a time
 because during a new node addition the list integrity is temporarily broken
 (this is also called {\it program invariant}).
 
@@ -41,7 +42,7 @@ because during a new node addition the list integrity is temporarily broken
         s_mutexProtectingTheGlobalList->Unlock();
     }
 
-    // return true the given number is greater than all array elements
+    // return true if the given number is greater than all array elements
     bool MyThread::IsGreater(int num)
     {
         // before using the list we must acquire the mutex
@@ -86,6 +87,10 @@ None.
 
 <wx/thread.h>
 
+\wxheading{Library}
+
+\helpref{wxBase}{librarieslist}
+
 \wxheading{See also}
 
 \helpref{wxThread}{wxthread}, \helpref{wxCondition}{wxcondition}, 
@@ -93,23 +98,27 @@ None.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxMutex::wxMutex}\label{wxmutexconstr}
+
+\membersection{wxMutex::wxMutex}\label{wxmutexctor}
 
 \func{}{wxMutex}{\param{wxMutexType }{type = {\tt wxMUTEX\_DEFAULT}}}
 
 Default constructor.
 
-\membersection{wxMutex::\destruct{wxMutex}}
+
+\membersection{wxMutex::\destruct{wxMutex}}\label{wxmutexdtor}
 
 \func{}{\destruct{wxMutex}}{\void}
 
 Destroys the wxMutex object.
 
+
 \membersection{wxMutex::Lock}\label{wxmutexlock}
 
 \func{wxMutexError}{Lock}{\void}
 
-Locks the mutex object.
+Locks the mutex object. This is equivalent to 
+\helpref{LockTimeout}{wxmutexlocktimeout} with infinite timeout.
 
 \wxheading{Return value}
 
@@ -119,9 +128,27 @@ One of:
 \begin{twocollist}\itemsep=0pt
 \twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.}
 \twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.}
-\twocolitem{{\bf wxMUTEX\_BUSY}}{The mutex is already locked by another thread.}
 \end{twocollist}
 
+
+\membersection{wxMutex::LockTimeout}\label{wxmutexlocktimeout}
+
+\func{wxMutexError}{LockTimeout}{\param{unsigned long}{ msec}}
+
+Try to lock the mutex object during the specified time interval.
+
+\wxheading{Return value}
+
+One of:
+
+\twocolwidtha{7cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{Mutex successfully locked.}
+\twocolitem{{\bf wxMUTEX\_TIMEOUT}}{Mutex couldn't be acquired before timeout expiration.}
+\twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.}
+\end{twocollist}
+
+
 \membersection{wxMutex::TryLock}\label{wxmutextrylock}
 
 \func{wxMutexError}{TryLock}{\void}
@@ -135,10 +162,10 @@ One of:
 \twocolwidtha{7cm}
 \begin{twocollist}\itemsep=0pt
 \twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.}
-\twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.}
 \twocolitem{{\bf wxMUTEX\_BUSY}}{The mutex is already locked by another thread.}
 \end{twocollist}
 
+
 \membersection{wxMutex::Unlock}\label{wxmutexunlock}
 
 \func{wxMutexError}{Unlock}{\void}
@@ -152,8 +179,6 @@ One of:
 \twocolwidtha{7cm}
 \begin{twocollist}\itemsep=0pt
 \twocolitem{{\bf wxMUTEX\_NO\_ERROR}}{There was no error.}
-\twocolitem{{\bf wxMUTEX\_DEAD\_LOCK}}{A deadlock situation was detected.}
-\twocolitem{{\bf wxMUTEX\_BUSY}}{The mutex is already locked by another thread.}
-\twocolitem{{\bf wxMUTEX\_UNLOCKED}}{The calling thread tries to unlock an unlocked mutex.}
+\twocolitem{{\bf wxMUTEX\_UNLOCKED}}{The calling thread doesn't own the mutex.}
 \end{twocollist}