Class Util

java.lang.Object
com.lmax.disruptor.util.Util

public final class Util extends Object
Set of common functions used by the Disruptor.
  • Field Details

    • ONE_MILLISECOND_IN_NANOSECONDS

      private static final int ONE_MILLISECOND_IN_NANOSECONDS
      See Also:
  • Constructor Details

    • Util

      public Util()
  • Method Details

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

      public static Sequence[] getSequencesFor(EventProcessor... processors)
      Get an array of Sequences for the passed EventProcessors.
      Parameters:
      processors - for which to get the sequences
      Returns:
      the array of Sequences
    • 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(Object mutex, long timeoutNanos) throws InterruptedException
      Parameters:
      mutex - The object to wait on
      timeoutNanos - The number of nanoseconds to wait for
      Returns:
      the number of nanoseconds waited (approximately)
      Throws:
      InterruptedException - if the underlying call to wait is interrupted