Class ReadWriteBackingMap.ReadLatch
- java.lang.Object
-
- com.tangosol.net.cache.ReadWriteBackingMap.ReadLatch
-
- Enclosing class:
- ReadWriteBackingMap
protected static class ReadWriteBackingMap.ReadLatch extends Object
A synchronization construct used to coordinate asynchronous loads by the refresh-ahead thread with cache accesses by other threads.The refresh-ahead thread places a new ReadLatch in the control map before performing a load operation on the cache store. The presence of the latch signals to a thread executing the
ReadWriteBackingMap.get(java.lang.Object)
method that an asynchronous load is in progress. This thread can then wait on the latch to get the results of the asynchronous load. This thread is then responsible for removing the latch from the control map.Additionally, a thread performing a
ReadWriteBackingMap.put(java.lang.Object, java.lang.Object)
orReadWriteBackingMap.remove(java.lang.Object)
operation can cancel an ongoing asynchronous load using the latch. This thread is also responsible for removing the latch from the control map.- Author:
- jh 2005.02.11
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancel()
Cancel the load operation.void
cancel(Throwable t)
Cancel the load operation due to an exception.void
complete(Object oValue)
Complete the load operation.Object
getKey()
Return the key that is being loaded by the refresh-ahead thread.Object
getValue()
Return the result of the load operation.boolean
isCanceled()
Return true if the load operation has been canceled.boolean
isComplete()
Return true if the load operation is complete.
-
-
-
Constructor Detail
-
ReadLatch
protected ReadLatch(Object oKey)
Create a new ReadLatch for the specified key.- Parameters:
oKey
- the key that is being loaded by the refresh-ahead thread
-
-
Method Detail
-
cancel
public void cancel()
Cancel the load operation. This method has no effect if the operation has already been completed or canceled.
-
cancel
public void cancel(Throwable t)
Cancel the load operation due to an exception. This method has no effect if the operation has already been completed or canceled.- Parameters:
t
- the exception responsible for cancelling the load
-
complete
public void complete(Object oValue)
Complete the load operation. The specified value and entry is the result of the load operation. This method has no effect if the operation has already been completed or canceled.- Parameters:
oValue
- the result of the load operation
-
isComplete
public boolean isComplete()
Return true if the load operation is complete. The results of the load operation can be retrieved using thegetValue()
method.- Returns:
- true if the load operation is complete
-
isCanceled
public boolean isCanceled()
Return true if the load operation has been canceled.- Returns:
- true if the load operation has been canceled
-
getKey
public Object getKey()
Return the key that is being loaded by the refresh-ahead thread.- Returns:
- the key that is being loaded
-
getValue
public Object getValue()
Return the result of the load operation.Note: this method should not be called by the refresh-ahead daemon thread
- Returns:
- the result of the load operation
-
-