Class AbstractWaitingCondition

    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) long c1  
      (package private) long c2  
      (package private) long c3  
      (package private) long c4  
      (package private) long c5  
      (package private) long c6  
      (package private) long c7  
      (package private) long c8  
      private static int CACHE_LINE_REFS  
      private static int MAX_WAITERS  
      (package private) long r1  
      (package private) long r2  
      (package private) long r3  
      (package private) long r4  
      (package private) long r5  
      (package private) long r6  
      (package private) long r7  
      private static long WAIT_TIME  
      private long waitCache  
      private java.util.concurrent.atomic.LongAdder waitCount  
      private java.util.concurrent.atomic.AtomicReferenceArray<java.lang.Thread> waiter  
      private static long WAITER_MASK  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void await()  
      void awaitNanos​(long timeout)  
      void signal()  
      abstract boolean test()
      code below will block until test() returns false
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • CACHE_LINE_REFS

        private static final int CACHE_LINE_REFS
      • waitCount

        private final java.util.concurrent.atomic.LongAdder waitCount
      • waiter

        private final java.util.concurrent.atomic.AtomicReferenceArray<java.lang.Thread> waiter
      • r1

        long r1
      • r2

        long r2
      • r3

        long r3
      • r4

        long r4
      • r5

        long r5
      • r6

        long r6
      • r7

        long r7
      • waitCache

        private long waitCache
      • c1

        long c1
      • c2

        long c2
      • c3

        long c3
      • c4

        long c4
      • c5

        long c5
      • c6

        long c6
      • c7

        long c7
      • c8

        long c8
    • Constructor Detail

      • AbstractWaitingCondition

        public AbstractWaitingCondition()
    • Method Detail

      • test

        public abstract boolean test()
        code below will block until test() returns false
        Specified by:
        test in interface Condition
        Returns:
        boolean - true if condition is not satisfied
      • awaitNanos

        public void awaitNanos​(long timeout)
                        throws java.lang.InterruptedException
        Specified by:
        awaitNanos in interface Condition
        Throws:
        java.lang.InterruptedException
      • await

        public void await()
                   throws java.lang.InterruptedException
        Specified by:
        await in interface Condition
        Throws:
        java.lang.InterruptedException
      • signal

        public void signal()
        Specified by:
        signal in interface Condition