Note that a call to \helpref{Signal()}{wxconditionsignal} may happen before the
other thread calls \helpref{Wait()}{wxconditionwait} and, just as with the
-pthread conditions, the signal is then lost and so if you want to be sure to
-get it you must use a mutex together with the condition variable.
+pthread conditions, the signal is then lost and so if you want to be sure that
+you don't miss it you must keep the mutex associated with the condition
+initially locked and lock it again before calling
+\helpref{Signal()}{wxconditionsignal}. Of course, this means that this call is
+going to block until \helpref{Wait()}{wxconditionwait} is called by another
+thread.
\wxheading{Example}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxCondition::wxCondition}\label{wxconditionconstr}
+\membersection{wxCondition::wxCondition}\label{wxconditionctor}
\func{}{wxCondition}{\param{wxMutex\& }{mutex}}
before calling \helpref{Wait}{wxconditionwait} function.
Use \helpref{IsOk}{wxconditionisok} to check if the object was successfully
-intiialized.
+initialized.
-\membersection{wxCondition::\destruct{wxCondition}}
+\membersection{wxCondition::\destruct{wxCondition}}\label{wxconditiondtor}
\func{}{\destruct{wxCondition}}{\void}
\constfunc{bool}{IsOk}{\void}
Returns {\tt true} if the object had been initialized successfully, {\tt false}
-if an error occured.
+if an error occurred.
\membersection{wxCondition::Signal}\label{wxconditionsignal}
This method atomically releases the lock on the mutex associated with this
condition (this is why it must be locked prior to calling Wait) and puts the
thread to sleep until \helpref{Signal}{wxconditionsignal} or
-\helpref{Broadcast}{wxconditionbroadcast} is called.
+\helpref{Broadcast}{wxconditionbroadcast} is called. It then locks the mutex
+again and returns.
Note that even if \helpref{Signal}{wxconditionsignal} had been called before
Wait without waking up any thread, the thread would still wait for another one
\wxheading{Return value}
-Returns {\tt wxCOND\_NO\_ERROR} on success, another value if an error occured.
+Returns {\tt wxCOND\_NO\_ERROR} on success, another value if an error occurred.
\wxheading{See also}
\membersection{wxCondition::WaitTimeout}\label{wxconditionwaittimeout}
-\func{wxCondError}{Wait}{\param{unsigned long}{ milliseconds}}
+\func{wxCondError}{WaitTimeout}{\param{unsigned long}{ milliseconds}}
Waits until the condition is signalled or the timeout has elapsed.
\wxheading{Return value}
Returns {\tt wxCOND\_NO\_ERROR} if the condition was signalled,
-{\tt wxCOND\_TIMEOUT} if the timeout elapsed ebfore this happened or another
+{\tt wxCOND\_TIMEOUT} if the timeout elapsed before this happened or another
error code from wxCondError enum.