- java.lang.Object
-
- com.lmax.disruptor.util.Util
-
public final class Util extends java.lang.Object
Set 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 long
awaitNanos(java.lang.Object mutex, long timeoutNanos)
static int
ceilingNextPowerOfTwo(int x)
Calculate the next power of 2, greater than or equal to x.static long
getMinimumSequence(Sequence[] sequences)
Get the minimum sequence from an array ofSequence
s.static long
getMinimumSequence(Sequence[] sequences, long minimum)
Get the minimum sequence from an array ofSequence
s.static Sequence[]
getSequencesFor(EventProcessor... processors)
Get an array ofSequence
s for the passedEventProcessor
s.static int
log2(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 ofSequence
s.- 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 ofSequence
s.- 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
andminimum
;minimum
ifsequences
is empty
-
getSequencesFor
public static Sequence[] getSequencesFor(EventProcessor... processors)
Get an array ofSequence
s for the passedEventProcessor
s.- Parameters:
processors
- for which to get the sequences- Returns:
- the array of
Sequence
s
-
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
-
-