Class Util


  • public final class Util
    extends java.lang.Object
    Set of common functions used by the Disruptor.
    • Constructor Detail

      • Util

        public Util()
    • Method Detail

      • ceilingNextPowerOfTwo

        public static int ceilingNextPowerOfTwo​(int x)
        Calculate the next power of 2, greater than or equal to x.

        From Hacker's Delight, Chapter 3, Harry S. Warren Jr.

        Parameters:
        x - Value to round up
        Returns:
        The next power of 2 from x inclusive
      • getMinimumSequence

        public static long getMinimumSequence​(Sequence[] sequences)
        Get the minimum sequence from an array of Sequences.
        Parameters:
        sequences - to compare.
        Returns:
        the minimum sequence found or Long.MAX_VALUE if the array is empty.
      • getMinimumSequence

        public static long getMinimumSequence​(Sequence[] sequences,
                                              long minimum)
        Get the minimum sequence from an array of Sequences.
        Parameters:
        sequences - to compare.
        minimum - an initial default minimum. If the array is empty this value will be returned.
        Returns:
        the smaller of minimum sequence value found in sequences and minimum; minimum if sequences is empty
      • log2

        public static int log2​(int value)
        Calculate the log base 2 of the supplied integer, essentially reports the location of the highest bit.
        Parameters:
        value - Positive value to calculate log2 for.
        Returns:
        The log2 value
      • awaitNanos

        public static long awaitNanos​(java.lang.Object mutex,
                                      long timeoutNanos)
                               throws java.lang.InterruptedException
        Parameters:
        mutex - The object to wait on
        timeoutNanos - The number of nanoseconds to wait for
        Returns:
        the number of nanoseconds waited (approximately)
        Throws:
        java.lang.InterruptedException - if the underlying call to wait is interrupted