Contents Up Previous Next

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.