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 .