public abstract class VMOperation extends VMOperationControl.AllocationFreeStack.Element<VMOperation>
| Modifier and Type | Class and Description |
|---|---|
static class |
VMOperation.CallerEffect
A VMOperation either blocks the caller or it does not.
|
static class |
VMOperation.SystemEffect
A VMOperation either causes a safepoint or it does not.
|
static class |
VMOperation.ThunkOperation
A VMOperation that executes a thunk.
|
| Modifier | Constructor and Description |
|---|---|
protected |
VMOperation(String name,
VMOperation.CallerEffect callerEffect,
VMOperation.SystemEffect systemEffect)
Constructor for sub-classes.
|
| Modifier and Type | Method and Description |
|---|---|
void |
enqueue()
Public interface: Queue the operation for execution.
|
static void |
enqueueBlockingNoSafepoint(String name,
SubstrateUtil.Thunk thunk)
Convenience method for thunks that can be run by allocating a VMOperation.
|
static void |
enqueueBlockingSafepoint(String name,
SubstrateUtil.Thunk thunk)
Convenience method for thunks that can be run by allocating a VMOperation.
|
protected void |
execute()
What it means to execute an operation.
|
protected String |
getName() |
protected org.graalvm.nativeimage.IsolateThread |
getQueuingVMThread() |
static void |
guaranteeInProgress(String message)
Check that there is a VMOperation in progress.
|
static void |
guaranteeNotInProgress(String message)
Check that there is not a VMOperation in progress.
|
static boolean |
isInProgress() |
protected abstract void |
operate()
Do whatever it is that this VM operation does.
|
protected VMOperation(String name, VMOperation.CallerEffect callerEffect, VMOperation.SystemEffect systemEffect)
public final void enqueue()
public static void enqueueBlockingSafepoint(String name, SubstrateUtil.Thunk thunk)
public static void enqueueBlockingNoSafepoint(String name, SubstrateUtil.Thunk thunk)
protected final void execute()
public static boolean isInProgress()
public static void guaranteeInProgress(String message)
public static void guaranteeNotInProgress(String message)
protected abstract void operate()
protected final String getName()
protected final org.graalvm.nativeimage.IsolateThread getQueuingVMThread()