The Guard Classes
The guard classes are a family of helper classes commonly used to manipulate synchronization objects.
As explained in Using Guards , the guard classes use the “resource acquisition is initialization” idiom. The RWTLockGuard template class uses this idiom for automatic acquisition and release of synchronization resources. The lock guard constructor calls an acquire() member provided by the synchronization resource. The lock guard destructor calls the release() member of an acquired resource.