private void releaseGlobalWriteLock()
    {
        // Get the global write lock to ensure only one thread at a time can execute this code.
        globalLock.writeLock().lock();

        // Use a try block so that the corresponding finally block guarantees release of the thread lock.
        try
        {
            // Release the global write lock, assigning it to no transaction.
            globalWriteLockTxId = null;

            // Signal that the write lock is now free.
            globalWriteLockFree.signal();
        }

        // Ensure that the thread lock is released once assignment of the write lock to the transaction is complete.
        finally
        {
            globalLock.writeLock().unlock();
        }
    }
private void releaseGlobalWriteLock()
    {
        
        globalLock.writeLock().lock();

        
        try
        {
            
            globalWriteLockTxId = null;

            
            globalWriteLockFree.signal();
        }

        
        finally
        {
            globalLock.writeLock().unlock();
        }
    }
private void releaseGlobalWriteLock ( ) { // Get the global write lock to ensure only one thread at a time can execute this code. globalLock . writeLock ( ) . lock ( ) ; // Use a try block so that the corresponding finally block guarantees release of the thread lock. try { // Release the global write lock, assigning it to no transaction. globalWriteLockTxId = null ; // Signal that the write lock is now free. globalWriteLockFree . signal ( ) ; } // Ensure that the thread lock is released once assignment of the write lock to the transaction is complete. finally { globalLock . writeLock ( ) . unlock ( ) ; } }
Releases the global write lock from being assigned to a transaction.
Releases the global write lock from being assigned to a transaction .