Class ForkNumberBucket
- java.lang.Object
-
- org.apache.maven.plugin.surefire.booterclient.ForkNumberBucket
-
public final class ForkNumberBucket extends java.lang.Object
A bucket from which fork numbers can be drawn. Any drawn number needs to be returned to the bucket, in order to keep the range of provided values delivered as small as possible.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicInteger
highWaterMark
private static ForkNumberBucket
INSTANCE
private java.util.Queue<java.lang.Integer>
qFree
-
Constructor Summary
Constructors Modifier Constructor Description private
ForkNumberBucket()
Non-public constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static int
drawNumber()
private int
drawNumberInternal()
private int
getHighestDrawnNumber()
private static ForkNumberBucket
getInstance()
static void
returnNumber(int number)
private void
returnNumberInternal(int number)
-
-
-
Field Detail
-
INSTANCE
private static final ForkNumberBucket INSTANCE
-
qFree
private final java.util.Queue<java.lang.Integer> qFree
-
highWaterMark
private final java.util.concurrent.atomic.AtomicInteger highWaterMark
-
-
Method Detail
-
drawNumber
public static int drawNumber()
- Returns:
- a fork number that is not currently in use. The value must be returned to the bucket using
returnNumber(int)
.
-
returnNumber
public static void returnNumber(int number)
- Parameters:
number
- the number to return to the bucket so that it can be reused.
-
getInstance
private static ForkNumberBucket getInstance()
- Returns:
- a singleton instance
-
drawNumberInternal
private int drawNumberInternal()
- Returns:
- a fork number that is not currently in use. The value must be returned to the bucket using
returnNumber(int)
.
-
getHighestDrawnNumber
private int getHighestDrawnNumber()
- Returns:
- the highest number that has been drawn
-
returnNumberInternal
private void returnNumberInternal(int number)
- Parameters:
number
- the number to return to the bucket so that it can be reused.
-
-