protected static class ReadWriteBackingMap.ReadLatch extends Object
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)
or ReadWriteBackingMap.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.
Modifier | Constructor and Description |
---|---|
protected |
ReadLatch(Object oKey)
Create a new ReadLatch for the specified key.
|
Modifier and Type | Method and 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.
|
protected ReadLatch(Object oKey)
oKey
- the key that is being loaded by the refresh-ahead threadpublic void cancel()
public void cancel(Throwable t)
t
- the exception responsible for cancelling the loadpublic void complete(Object oValue)
oValue
- the result of the load operationpublic boolean isComplete()
getValue()
method.public boolean isCanceled()
public Object getKey()
public Object getValue()
Note: this method should not be called by the refresh-ahead daemon thread