private static final class KernelRunner.FJSafeBarrier extends java.lang.Object implements IKernelBarrier
Modifier and Type | Field and Description |
---|---|
(package private) java.util.concurrent.atomic.AtomicBoolean |
brokenBarrier |
(package private) java.util.concurrent.atomic.AtomicBoolean |
canceled |
(package private) java.lang.Object |
lock |
(package private) int |
remainingThreads |
(package private) int |
threads |
Constructor and Description |
---|
FJSafeBarrier(int threads) |
Modifier and Type | Method and Description |
---|---|
boolean |
block() |
void |
breakBarrier(java.lang.Throwable e)
Should be called by worker threads when a fatal exception occurs,
so that all threads fail-fast and no deadlock occurs.
|
void |
cancelBarrier()
Cancels the barrier.
|
boolean |
isReleasable() |
final int threads
final java.util.concurrent.atomic.AtomicBoolean brokenBarrier
final java.util.concurrent.atomic.AtomicBoolean canceled
final java.lang.Object lock
int remainingThreads
public void breakBarrier(java.lang.Throwable e)
breakBarrier
in interface IKernelBarrier
public void cancelBarrier()
IKernelBarrier
cancelBarrier
in interface IKernelBarrier
public boolean block() throws java.lang.InterruptedException
block
in interface java.util.concurrent.ForkJoinPool.ManagedBlocker
java.lang.InterruptedException
public boolean isReleasable()
isReleasable
in interface java.util.concurrent.ForkJoinPool.ManagedBlocker