1\section{\class{wxCriticalSectionLocker}}\label{wxcriticalsectionlocker}
2
3This is a small helper class to be used with \helpref{wxCriticalSection}{wxcriticalsection} 
4objects. A wxCriticalSectionLocker enters the critical section in the
5constructor and leaves it in the destructor making it much more difficult to
6forget to leave a critical section (which, in general, will lead to serious
7and difficult to debug problems).
8
9Example of using it:
10
11\begin{verbatim}
12void Set Foo()
13{
14    // gs_critSect is some (global) critical section guarding access to the
15    // object "foo"
16    wxCriticalSectionLocker locker(gs_critSect);
17
18    if ( ... )
19    {
20        // do something
21        ...
22
23        return;
24    }
25
26    // do something else
27    ...
28
29    return;
30}
31\end{verbatim}
32
33Without wxCriticalSectionLocker, you would need to remember to manually leave
34the critical section before each {\tt return}.
35
36\wxheading{Derived from}
37
38None.
39
40\wxheading{Include files}
41
42<wx/thread.h>
43
44\wxheading{See also}
45
46\helpref{wxCriticalSection}{wxcriticalsection}, 
47\helpref{wxMutexLocker}{wxmutexlocker}
48
49\latexignore{\rtfignore{\wxheading{Members}}}
50
51\membersection{wxCriticalSectionLocker::wxCriticalSectionLocker}\label{wxcriticalsectionlockerctor}
52
53\func{}{wxCriticalSectionLocker}{\param{wxCriticalSection\& }{criticalsection}}
54
55Constructs a wxCriticalSectionLocker object associated with given
56{\it criticalsection} and enters it.
57
58\membersection{wxCriticalSectionLocker::\destruct{wxCriticalSectionLocker}}\label{wxcriticalsectionlockerdtor}
59
60\func{}{\destruct{wxCriticalSectionLocker}}{\void}
61
62Destructor leaves the critical section.
63
64