Skip to content

Commit

Permalink
Merge pull request #18813 from keithc-ca/virtual
Browse files Browse the repository at this point in the history
Update signature of virtual thread support functions for jdk23+
  • Loading branch information
gacholio authored Jan 25, 2024
2 parents 8c73b1d + c0ad487 commit d15ef63
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 6 deletions.
25 changes: 21 additions & 4 deletions runtime/j9vm/javanextvmi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,14 @@ JVM_GetClassFileVersion(JNIEnv *env, jclass cls)
}

JNIEXPORT void JNICALL
JVM_VirtualThreadHideFrames(JNIEnv *env, jobject vthread, jboolean hide)
JVM_VirtualThreadHideFrames(
JNIEnv *env,
#if JAVA_SPEC_VERSION >= 23
jclass clz,
#else /* JAVA_SPEC_VERSION >= 23 */
jobject vthread,
#endif /* JAVA_SPEC_VERSION >= 23 */
jboolean hide)
{
J9VMThread *currentThread = (J9VMThread *)env;
J9InternalVMFunctions const * const vmFuncs = currentThread->javaVM->internalVMFunctions;
Expand All @@ -591,8 +598,11 @@ JVM_VirtualThreadHideFrames(JNIEnv *env, jobject vthread, jboolean hide)
*/
bool hiddenFrames = J9_ARE_ALL_BITS_SET(currentThread->privateFlags, J9_PRIVATE_FLAGS_VIRTUAL_THREAD_HIDDEN_FRAMES);
if (hide) {
Assert_SC_true(!hiddenFrames && (vThreadObj == J9_JNI_UNWRAP_REFERENCE(vthread)));
enterVThreadTransitionCritical(currentThread, vthread);
Assert_SC_true(!hiddenFrames);
#if JAVA_SPEC_VERSION < 23
Assert_SC_true(vThreadObj == J9_JNI_UNWRAP_REFERENCE(vthread));
#endif /* JAVA_SPEC_VERSION < 23 */
enterVThreadTransitionCritical(currentThread, (jobject)&currentThread->threadObject);
}

VM_VMHelpers::virtualThreadHideFrames(currentThread, hide);
Expand Down Expand Up @@ -726,7 +736,14 @@ JVM_ExpandStackFrameInfo(JNIEnv *env, jobject object)
}

JNIEXPORT void JNICALL
JVM_VirtualThreadDisableSuspend(JNIEnv *env, jobject vthread, jboolean enter)
JVM_VirtualThreadDisableSuspend(
JNIEnv *env,
#if JAVA_SPEC_VERSION >= 23
jclass clz,
#else /* JAVA_SPEC_VERSION >= 23 */
jobject vthread,
#endif /* JAVA_SPEC_VERSION >= 23 */
jboolean enter)
{
/* TODO: Add implementation.
* See https://github.com/eclipse-openj9/openj9/issues/18671 for more details.
Expand Down
8 changes: 6 additions & 2 deletions runtime/redirector/forwarders.m4
Original file line number Diff line number Diff line change
Expand Up @@ -410,8 +410,10 @@ _IF([(19 <= JAVA_SPEC_VERSION) && (JAVA_SPEC_VERSION < 21)],
[_X(JVM_VirtualThreadUnmountEnd, JNICALL, false, void, JNIEnv *env, jobject thread, jboolean lastUnmount)])
_IF([JAVA_SPEC_VERSION >= 20],
[_X(JVM_GetClassFileVersion, JNICALL, false, jint, JNIEnv *env, jclass cls)])
_IF([JAVA_SPEC_VERSION >= 20],
_IF([(20 <= JAVA_SPEC_VERSION) && (JAVA_SPEC_VERSION < 23)],
[_X(JVM_VirtualThreadHideFrames, JNICALL, false, void, JNIEnv *env, jobject vthread, jboolean hide)])
_IF([JAVA_SPEC_VERSION >= 23],
[_X(JVM_VirtualThreadHideFrames, JNICALL, false, void, JNIEnv *env, jclass clz, jboolean hide)])
_IF([JAVA_SPEC_VERSION >= 21],
[_X(JVM_IsForeignLinkerSupported, JNICALL, false, jboolean, void)])
_IF([JAVA_SPEC_VERSION >= 21],
Expand All @@ -428,5 +430,7 @@ _IF([defined(J9VM_OPT_VALHALLA_VALUE_TYPES)],
[_X(JVM_IsValhallaEnabled, JNICALL, false, jboolean, void)])
_IF([JAVA_SPEC_VERSION >= 22],
[_X(JVM_ExpandStackFrameInfo, JNICALL, false, void, JNIEnv *env, jobject object)])
_IF([JAVA_SPEC_VERSION >= 22],
_IF([JAVA_SPEC_VERSION == 22],
[_X(JVM_VirtualThreadDisableSuspend, JNICALL, false, void, JNIEnv *env, jobject vthread, jboolean enter)])
_IF([JAVA_SPEC_VERSION >= 23],
[_X(JVM_VirtualThreadDisableSuspend, JNICALL, false, void, JNIEnv *env, jclass clz, jboolean enter)])

0 comments on commit d15ef63

Please sign in to comment.