public void memberDeparted(InternalDistributedMember id, boolean crashed) { if (logger.fineEnabled()) { logger.fine("InitializingBucketMembershipObserver for bucket " + this.bucketToMonitor + " member departed " + id); } // Only release the lock iff requesting member has parted if (this.bucketToMonitor.isHosting() && id.equals(requestingMember)) { BucketRegion br = bucketToMonitor.getHostedBucketRegion(); br.releaseSnapshotGIIWriteLock(); } }
public void releaseSnapshotGIIWriteLock() { if (writeLockEnabled()) { if (this.getPartitionedRegion().isInternalColumnTable()) { BucketRegion bufferRegion = getBufferRegion(); bufferRegion.releaseSnapshotGIIWriteLock(); } else { final LogWriterI18n logger = getCache().getLoggerI18n(); if (logger.fineEnabled()) { logger.fine("Releasing exclusive snapshotGIILock on bucket " + this.getName()); } if (this.snapshotGIILock.hasExclusiveLock(giiWriteLockForSIOwner, null)) { if (snapshotGIILocked) { snapshotGIILock.releaseLock(LockMode.EX, false, giiWriteLockForSIOwner); getBucketAdvisor().removeMembershipListener(giiListener); this.giiListener = null; snapshotGIILocked = false; } } if (logger.fineEnabled()) { logger.fine("Released exclusive snapshotGIILock on bucket " + this.getName()); } } } }
((BucketRegion)giiRegion).releaseSnapshotGIIWriteLock();
if (rgn instanceof BucketRegion) { BucketRegion bucketRegion = (BucketRegion)rgn; bucketRegion.releaseSnapshotGIIWriteLock();