public abstract class VMOperation extends Object
Modifier and Type | Class and Description |
---|---|
static class |
VMOperation.SystemEffect |
Modifier | Constructor and Description |
---|---|
protected |
VMOperation(String name,
VMOperation.SystemEffect systemEffect) |
Modifier and Type | Method and Description |
---|---|
protected void |
execute(NativeVMOperationData data) |
boolean |
getCausesSafepoint() |
String |
getName() |
protected abstract org.graalvm.nativeimage.IsolateThread |
getQueuingThread(NativeVMOperationData data) |
static void |
guaranteeGCInProgress(String message) |
static void |
guaranteeInProgress(String message)
Check that there is a VMOperation in progress.
|
static void |
guaranteeInProgressAtSafepoint(String message) |
static void |
guaranteeNotInProgress(String message)
Check that there is not a VMOperation in progress.
|
protected boolean |
hasWork(NativeVMOperationData data)
Used to determine if a VM operation must be executed or if it can be skipped.
|
protected abstract boolean |
isFinished(NativeVMOperationData data) |
protected boolean |
isGC() |
static boolean |
isGCInProgress() |
static boolean |
isInProgress()
Returns true if the current thread is currently executing a VM operation.
|
static boolean |
isInProgressAtSafepoint()
Returns true if the current thread is currently executing a VM operation that causes a
safepoint.
|
protected abstract void |
operate(NativeVMOperationData data) |
protected abstract void |
setFinished(NativeVMOperationData data,
boolean value) |
protected abstract void |
setQueuingThread(NativeVMOperationData data,
org.graalvm.nativeimage.IsolateThread value) |
protected VMOperation(String name, VMOperation.SystemEffect systemEffect)
public final String getName()
protected boolean isGC()
public final boolean getCausesSafepoint()
protected final void execute(NativeVMOperationData data)
public static boolean isInProgress()
public static boolean isInProgressAtSafepoint()
public static boolean isGCInProgress()
public static void guaranteeInProgress(String message)
public static void guaranteeNotInProgress(String message)
public static void guaranteeInProgressAtSafepoint(String message)
public static void guaranteeGCInProgress(String message)
protected boolean hasWork(NativeVMOperationData data)
protected abstract org.graalvm.nativeimage.IsolateThread getQueuingThread(NativeVMOperationData data)
protected abstract void setQueuingThread(NativeVMOperationData data, org.graalvm.nativeimage.IsolateThread value)
protected abstract boolean isFinished(NativeVMOperationData data)
protected abstract void setFinished(NativeVMOperationData data, boolean value)
protected abstract void operate(NativeVMOperationData data)