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(wxCriticalSection& criticalsection)
Constructs a wxCriticalSectionLocker object associated with given criticalsection and enters it.
~wxCriticalSectionLocker()
Destructor leaves the critical section.