final void lockPendingGII() { if (!this.pendingGIITXLocked) { this.pendingGIITXLocked = this.region.getImageState() .lockPendingTXRegionStates(false, false); } }
/** * Check if GII for the underlying region including for TXRegionState, if any, * is complete. In case it is not complete, then it will also acquire the lock * to sync against a concurrent GII for this TXRegionState. The lock should be * released by invoking {@link #unlockGII()} or * {@link #addPendingTXOpAndUnlockGII}. * * @return true if the underlying region has been initialized at least for * this TXRegionState, and false otherwise in which case it will lock * GII ops on this TXRegionState until {@link #unlockGII()} is invoked */ public final boolean isInitializedAndLockGII() { if (this.pendingTXOps == null) { return true; } // if region is in the process of final initialization, then wait // for it since GII will also bring TXRegionState up-to-date final ImageState imgState = this.region.getImageState(); return !imgState.lockPendingTXRegionStates(false, false); }
imgState.lockPendingTXRegionStates(true, true); try {
if (imgState.lockPendingTXRegionStates(true, false)) { try {
final ImageState imgState = this.region.getImageState(); final CachePerfStats stats = this.region.getCachePerfStats(); imgState.lockPendingTXRegionStates(true, true); try { TXRegionState txrs = imgState.getPendingTXRegionState(txId, false);
is.lockGII(); if (giiStatus.didGII() && is.lockPendingTXRegionStates(true, false)) { Collection<TXRegionState> pendingTXStates = null; try {
this.isValid = true; if (!r.isInitialized() && r.getImageState().lockPendingTXRegionStates(true, false)) { try { if (!r.getImageState().addPendingTXRegionState(this)) {