public abstract class ParkEvent extends Object
ParkEvent.initializeOnce(com.oracle.svm.core.jdk.UninterruptibleUtils.AtomicReference<com.oracle.svm.core.thread.ParkEvent>, boolean)
and ParkEvent.detach(com.oracle.svm.core.jdk.UninterruptibleUtils.AtomicReference<com.oracle.svm.core.thread.ParkEvent>)
with three states and atomic
transitions
:
UninterruptibleUtils.AtomicReference
is null.
ParkEvent
that allows wait and unpark
operations.
DetachedParkEvent
singleton.
Modifier and Type | Class and Description |
---|---|
static interface |
ParkEvent.ParkEventFactory |
Modifier and Type | Field and Description |
---|---|
protected boolean |
isSleepEvent
Currently required by legacy code.
|
Modifier | Constructor and Description |
---|---|
protected |
ParkEvent()
Constructor for subclasses.
|
Modifier and Type | Method and Description |
---|---|
protected abstract void |
condTimedWait(long delayNanos)
cond_timedwait, similar to
ParkEvent.condWait() but with a timeout in nanoseconds. |
protected abstract void |
condWait() |
protected abstract void |
reset()
Resets a pending
ParkEvent.unpark() at the time of the call. |
protected abstract void |
unpark()
Notify anyone waiting on this event.
|
protected abstract void reset()
ParkEvent.unpark()
at the time of the call. This must synchronize in a way
that prevents it from being reordered with regard to setting the thread's interrupted status.protected abstract void condWait()
protected abstract void condTimedWait(long delayNanos)
ParkEvent.condWait()
but with a timeout in nanoseconds.protected abstract void unpark()