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



wxCriticalSectionLocker::wxCriticalSectionLocker



wxCriticalSectionLocker(wxCriticalSection& criticalsection)

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



wxCriticalSectionLocker::~wxCriticalSectionLocker



~wxCriticalSectionLocker(void)

Destructor leaves the critical section.



ymasuda 平成17年11月19日