Package ubic.gemma.persistence.cache
Class StaticCacheKeyLock
- java.lang.Object
-
- ubic.gemma.persistence.cache.StaticCacheKeyLock
-
- All Implemented Interfaces:
CacheKeyLock
public class StaticCacheKeyLock extends Object implements CacheKeyLock
Implementation of theCacheKeyLockinterface that uses a static week map to store locks by key.Locks are guaranteed to be kept around as long as there is a
CacheKeyLock.LockAcquisitionreferring to it, otherwise they might be freed by the GC.- Author:
- poirigui
- See Also:
WeakHashMap
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ubic.gemma.persistence.cache.CacheKeyLock
CacheKeyLock.LockAcquisition
-
-
Constructor Summary
Constructors Constructor Description StaticCacheKeyLock(Cache cache, Object key, boolean readOnly)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanisReadOnly()Indicate if this lock is read-only.CacheKeyLock.LockAcquisitionlock()Acquire a lock on the cache key.CacheKeyLock.LockAcquisitionlockInterruptibly()Acquire a lock interruptibly on a cache key.
-
-
-
Method Detail
-
isReadOnly
public boolean isReadOnly()
Description copied from interface:CacheKeyLockIndicate if this lock is read-only.- Specified by:
isReadOnlyin interfaceCacheKeyLock
-
lock
public CacheKeyLock.LockAcquisition lock()
Description copied from interface:CacheKeyLockAcquire a lock on the cache key.- Specified by:
lockin interfaceCacheKeyLock
-
lockInterruptibly
public CacheKeyLock.LockAcquisition lockInterruptibly() throws InterruptedException
Description copied from interface:CacheKeyLockAcquire a lock interruptibly on a cache key.- Specified by:
lockInterruptiblyin interfaceCacheKeyLock- Throws:
InterruptedException- if the current thread was interrupted prior to or while waiting on the lock
-
-