]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/critsect.tex
Patches-1851591 ] dataview sample is crashing (under MSW)
[wxWidgets.git] / docs / latex / wx / critsect.tex
1 \section{\class{wxCriticalSection}}\label{wxcriticalsection}
2
3 A critical section object is used for exactly the same purpose as
4 \helpref{mutexes}{wxmutex}. The only difference is that under Windows platform
5 critical sections are only visible inside one process, while mutexes may be
6 shared between processes, so using critical sections is slightly more
7 efficient. The terminology is also slightly different: mutex may be locked (or
8 acquired) and unlocked (or released) while critical section is entered and left
9 by the program.
10
11 Finally, you should try to use
12 \helpref{wxCriticalSectionLocker}{wxcriticalsectionlocker} class whenever
13 possible instead of directly using wxCriticalSection for the same reasons
14 \helpref{wxMutexLocker}{wxmutexlocker} is preferrable to
15 \helpref{wxMutex}{wxmutex} - please see wxMutex for an example.
16
17 \wxheading{Derived from}
18
19 None.
20
21 \wxheading{Include files}
22
23 <wx/thread.h>
24
25 \wxheading{Library}
26
27 \helpref{wxBase}{librarieslist}
28
29 \wxheading{See also}
30
31 \helpref{wxThread}{wxthread}, \helpref{wxCondition}{wxcondition},
32 \helpref{wxCriticalSectionLocker}{wxcriticalsectionlocker}
33
34 \latexignore{\rtfignore{\wxheading{Members}}}
35
36 \membersection{wxCriticalSection::wxCriticalSection}\label{wxcriticalsectionctor}
37
38 \func{}{wxCriticalSection}{\void}
39
40 Default constructor initializes critical section object.
41
42 \membersection{wxCriticalSection::\destruct{wxCriticalSection}}\label{wxcriticalsectiondtor}
43
44 \func{}{\destruct{wxCriticalSection}}{\void}
45
46 Destructor frees the resources.
47
48 \membersection{wxCriticalSection::Enter}\label{wxcriticalsectionenter}
49
50 \func{void }{Enter}{\void}
51
52 Enter the critical section (same as locking a mutex). There is no error return
53 for this function. After entering the critical section protecting some global
54 data the thread running in critical section may safely use/modify it.
55
56 \membersection{wxCriticalSection::Leave}\label{wxcriticalsectionleave}
57
58 \func{void }{Leave}{\void}
59
60 Leave the critical section allowing other threads use the global data protected
61 by it. There is no error return for this function.
62