Releasing and Reacquiring a Guarded Lock
To release and reacquire a guarded lock, you should use the release() and acquire() members of the guard object. as shown in Example 40. These member functions update the internal state of the guard so that the destructor does not attempt to release a lock that is no longer held.
Example 40 – Releasing and reacquiring a guarded lock
{
RWTLockGuard<RWMutexLock> lock(mutex);
// Mutex is acquired!
lock.release();
// Mutex is released!
lock.acquire();
// Mutex is acquired!
}
// Mutex is released!