Class LRUHybridCache.OriginThreadAwareFuture

  • All Implemented Interfaces:
    java.util.concurrent.Future<HybridCacheEntry<V>>
    Enclosing class:
    LRUHybridCache<K,​V>

    private class LRUHybridCache.OriginThreadAwareFuture
    extends java.lang.Object
    implements java.util.concurrent.Future<HybridCacheEntry<V>>
    Helper class, that remembers the future task origin thread, so that cycles could be detected.
    • Field Detail

      • key

        private final K key
      • threadId

        private volatile long threadId
      • lastHit

        private volatile long lastHit
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • cancel

        public boolean cancel​(boolean mayInterruptIfRunning)
        Specified by:
        cancel in interface java.util.concurrent.Future<HybridCacheEntry<V>>
      • isCancelled

        public boolean isCancelled()
        Specified by:
        isCancelled in interface java.util.concurrent.Future<HybridCacheEntry<V>>
      • isDone

        public boolean isDone()
        Specified by:
        isDone in interface java.util.concurrent.Future<HybridCacheEntry<V>>
      • get

        public HybridCacheEntry<V> get()
                                throws java.lang.InterruptedException,
                                       java.util.concurrent.ExecutionException
        Specified by:
        get in interface java.util.concurrent.Future<HybridCacheEntry<V>>
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.ExecutionException
      • get

        public HybridCacheEntry<V> get​(long timeout,
                                       java.util.concurrent.TimeUnit unit)
                                throws java.lang.InterruptedException,
                                       java.util.concurrent.ExecutionException,
                                       java.util.concurrent.TimeoutException
        Specified by:
        get in interface java.util.concurrent.Future<HybridCacheEntry<V>>
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.ExecutionException
        java.util.concurrent.TimeoutException
      • run

        public void run()