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) 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.

Author:
jh 2005.02.11
  • Constructor Details

    • 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 Details

    • 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 the getValue() 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