## wxCriticalSectionLocker

This is a small helper class to be used with wxCriticalSection objects. A wxCriticalSectionLocker enters the critical section in the constructor and leaves it in the destructor making it much more difficult to forget to leave a critical section (which, in general, will lead to serious and difficult to debug problems).

Example of using it:

    void Set Foo()
    {
        // gs_critSect is some (global) critical section guarding access to the
        // object "foo"
        wxCriticalSectionLocker locker(gs_critSect);

        if ( ... )
        {
            // do something
            ...

            return;
        }

        // do something else
        ...

        return;
    }

Without wxCriticalSectionLocker, you would need to remember to manually leave the critical section before each `return`.

Derived from

None.

Include files

<wx/thread.h>

See also

wxCriticalSection, wxMutexLocker

Members

wxCriticalSectionLocker::wxCriticalSectionLocker
wxCriticalSectionLocker::~wxCriticalSectionLocker

### wxCriticalSectionLocker::wxCriticalSectionLocker

wxCriticalSectionLocker(wxCriticalSection& criticalsection)

Constructs a wxCriticalSectionLocker object associated with given criticalsection and enters it.

### wxCriticalSectionLocker::~wxCriticalSectionLocker

~wxCriticalSectionLocker()

Destructor leaves the critical section.