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!