public final class StackOverflowCheckImpl extends Object implements StackOverflowCheck
StackOverflowCheck.Options, StackOverflowCheck.OSSupport| Modifier and Type | Field and Description |
|---|---|
static FastThreadLocalWord<org.graalvm.word.UnsignedWord> |
stackBoundaryTL |
static SnippetRuntime.SubstrateForeignCallDescriptor |
THROW_CACHED_STACK_OVERFLOW_ERROR |
static SnippetRuntime.SubstrateForeignCallDescriptor |
THROW_NEW_STACK_OVERFLOW_ERROR |
| Constructor and Description |
|---|
StackOverflowCheckImpl() |
| Modifier and Type | Method and Description |
|---|---|
static long |
computeDeoptFrameSize(org.graalvm.compiler.nodes.StructuredGraph graph) |
void |
disableStackOverflowChecksForFatalError()
Disables all stack overflow checks for this thread.
|
void |
initialize(org.graalvm.nativeimage.IsolateThread thread)
Called for each thread when the thread is attached to the VM.
|
boolean |
isYellowZoneAvailable()
Check if the yellow zone of the stack available for usage.
|
void |
makeYellowZoneAvailable()
Make the yellow zone of the stack available for usage.
|
static boolean |
needStackOverflowCheck(SharedMethod method) |
void |
protectYellowZone()
The inverse operation of
StackOverflowCheck.makeYellowZoneAvailable(). |
void |
updateStackOverflowBoundary()
Updates the stack overflow boundary of the current thread.
|
int |
yellowAndRedZoneSize()
Returns the combined size of the yellow and red zone.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsingletonpublic static final FastThreadLocalWord<org.graalvm.word.UnsignedWord> stackBoundaryTL
public static final SnippetRuntime.SubstrateForeignCallDescriptor THROW_CACHED_STACK_OVERFLOW_ERROR
public static final SnippetRuntime.SubstrateForeignCallDescriptor THROW_NEW_STACK_OVERFLOW_ERROR
public void initialize(org.graalvm.nativeimage.IsolateThread thread)
StackOverflowCheckinitialize in interface StackOverflowCheckpublic void makeYellowZoneAvailable()
StackOverflowCheckStackOverflowCheck.protectYellowZone(). Nested calls are supported: if the yellow zone is
already available, this function is a no-op.makeYellowZoneAvailable in interface StackOverflowCheckpublic boolean isYellowZoneAvailable()
StackOverflowCheckisYellowZoneAvailable in interface StackOverflowCheckpublic void protectYellowZone()
StackOverflowCheckStackOverflowCheck.makeYellowZoneAvailable().protectYellowZone in interface StackOverflowCheckpublic int yellowAndRedZoneSize()
StackOverflowCheckyellowAndRedZoneSize in interface StackOverflowCheckpublic void disableStackOverflowChecksForFatalError()
StackOverflowCheckdisableStackOverflowChecksForFatalError in interface StackOverflowCheckpublic void updateStackOverflowBoundary()
StackOverflowCheckupdateStackOverflowBoundary in interface StackOverflowCheckpublic static boolean needStackOverflowCheck(SharedMethod method)
public static long computeDeoptFrameSize(org.graalvm.compiler.nodes.StructuredGraph graph)