| 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 | |