Class ThreadResourcesBalancer
- java.lang.Object
-
- org.apache.maven.surefire.junitcore.pc.ThreadResourcesBalancer
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.Semaphore
balancer
private int
numPermits
-
Constructor Summary
Constructors Constructor Description ThreadResourcesBalancer(int numPermits)
fair set to false.ThreadResourcesBalancer(int numPermits, boolean fair)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
acquirePermit()
Acquires a permit from this balancer, blocking until one is available.void
releaseAllPermits()
void
releasePermit()
Releases a permit, returning it to the balancer.
-
-
-
Constructor Detail
-
ThreadResourcesBalancer
ThreadResourcesBalancer(int numPermits)
fair set to false.- Parameters:
numPermits
- number of permits to acquire when maintaining concurrency on tests. Must be >0 and <Integer.MAX_VALUE
.- See Also:
ThreadResourcesBalancer(int, boolean)
-
ThreadResourcesBalancer
ThreadResourcesBalancer(int numPermits, boolean fair)
- Parameters:
numPermits
- number of permits to acquire when maintaining concurrency on tests. Must be >0 and <Integer.MAX_VALUE
.fair
-true
guarantees the waiting schedulers to wake up in order they acquired a permit- Throws:
java.lang.IllegalArgumentException
- if numPermits is not positive number
-
-
Method Detail
-
acquirePermit
public boolean acquirePermit()
Acquires a permit from this balancer, blocking until one is available.- Specified by:
acquirePermit
in interfaceBalancer
- Returns:
true
if current thread is NOT interrupted while waiting for a permit.
-
releasePermit
public void releasePermit()
Releases a permit, returning it to the balancer.- Specified by:
releasePermit
in interfaceBalancer
-
releaseAllPermits
public void releaseAllPermits()
- Specified by:
releaseAllPermits
in interfaceBalancer
-
-