public final class ReferenceInternals extends Object
Reference
or providing access to them. These are
not injected into Target_java_lang_ref_Reference
so that subclasses of Reference
cannot interfere with them.Modifier and Type | Field and Description |
---|---|
static String |
REFERENT_FIELD_NAME |
Modifier and Type | Method and Description |
---|---|
static <T> void |
clear(Reference<T> instance) |
static <T> Reference<?> |
getNextDiscovered(Reference<T> instance)
Barrier-less read of
Target_java_lang_ref_Reference.discovered . |
static long |
getNextDiscoveredFieldOffset() |
static jdk.vm.ci.meta.ResolvedJavaType |
getReferenceType(jdk.vm.ci.meta.MetaAccessProvider metaAccess) |
static <T> T |
getReferent(Reference<T> instance) |
static jdk.vm.ci.meta.ResolvedJavaField |
getReferentField(jdk.vm.ci.meta.MetaAccessProvider metaAccess) |
static <T> org.graalvm.word.Pointer |
getReferentFieldAddress(Reference<T> instance) |
static long |
getReferentFieldOffset() |
static <T> org.graalvm.word.Pointer |
getReferentPointer(Reference<T> instance)
Barrier-less read of
Target_java_lang_ref_Reference.referent as pointer. |
static long |
getSoftReferenceClock() |
static long |
getSoftReferenceTimestamp(SoftReference<?> instance) |
static boolean |
hasQueue(Reference<?> instance) |
static void |
processPendingReferences() |
static <T> void |
setNextDiscovered(Reference<T> instance,
Reference<?> newNext)
Barrier-less write of
Target_java_lang_ref_Reference.discovered . |
static <T> void |
setReferentPointer(Reference<T> instance,
org.graalvm.word.Pointer value)
Barrier-less write of
Target_java_lang_ref_Reference.referent as pointer. |
static void |
updateSoftReferenceClock() |
static void |
waitForPendingReferences() |
static boolean |
waitForReferenceProcessing() |
public static final String REFERENT_FIELD_NAME
public static <T> void clear(Reference<T> instance)
public static <T> org.graalvm.word.Pointer getReferentPointer(Reference<T> instance)
Target_java_lang_ref_Reference.referent
as pointer.public static <T> T getReferent(Reference<T> instance)
public static <T> void setReferentPointer(Reference<T> instance, org.graalvm.word.Pointer value)
Target_java_lang_ref_Reference.referent
as pointer.public static <T> org.graalvm.word.Pointer getReferentFieldAddress(Reference<T> instance)
public static long getReferentFieldOffset()
public static <T> Reference<?> getNextDiscovered(Reference<T> instance)
Target_java_lang_ref_Reference.discovered
.public static long getNextDiscoveredFieldOffset()
public static <T> void setNextDiscovered(Reference<T> instance, Reference<?> newNext)
Target_java_lang_ref_Reference.discovered
.public static boolean hasQueue(Reference<?> instance)
public static void waitForPendingReferences() throws InterruptedException
InterruptedException
public static void processPendingReferences()
public static boolean waitForReferenceProcessing() throws InterruptedException
InterruptedException
public static long getSoftReferenceClock()
public static void updateSoftReferenceClock()
public static long getSoftReferenceTimestamp(SoftReference<?> instance)
public static jdk.vm.ci.meta.ResolvedJavaType getReferenceType(jdk.vm.ci.meta.MetaAccessProvider metaAccess)
public static jdk.vm.ci.meta.ResolvedJavaField getReferentField(jdk.vm.ci.meta.MetaAccessProvider metaAccess)