- java.lang.Object
-
- com.lmax.disruptor.util.Util
-
public final class Util extends java.lang.ObjectSet of common functions used by the Disruptor.
-
-
Constructor Summary
Constructors Constructor Description Util()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static longawaitNanos(java.lang.Object mutex, long timeoutNanos)static intceilingNextPowerOfTwo(int x)Calculate the next power of 2, greater than or equal to x.static longgetMinimumSequence(Sequence[] sequences)Get the minimum sequence from an array ofSequences.static longgetMinimumSequence(Sequence[] sequences, long minimum)Get the minimum sequence from an array ofSequences.static Sequence[]getSequencesFor(EventProcessor... processors)Get an array ofSequences for the passedEventProcessors.static intlog2(int value)Calculate the log base 2 of the supplied integer, essentially reports the location of the highest bit.
-
-
-
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 ofSequences.- 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 ofSequences.- 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
sequencesandminimum;minimumifsequencesis empty
-
getSequencesFor
public static Sequence[] getSequencesFor(EventProcessor... processors)
Get an array ofSequences for the passedEventProcessors.- 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(java.lang.Object mutex, long timeoutNanos) throws java.lang.InterruptedException- Parameters:
mutex- The object to wait ontimeoutNanos- 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
-
-