diff --git a/src/hotspot/share/runtime/mountUnmountDisabler.cpp b/src/hotspot/share/runtime/mountUnmountDisabler.cpp index 5bf00323f1024..3e3dc159120c5 100644 --- a/src/hotspot/share/runtime/mountUnmountDisabler.cpp +++ b/src/hotspot/share/runtime/mountUnmountDisabler.cpp @@ -28,6 +28,7 @@ #include "prims/jvmtiThreadState.inline.hpp" #include "runtime/handles.inline.hpp" #include "runtime/javaThread.hpp" +#include "runtime/jniHandles.hpp" #include "runtime/mountUnmountDisabler.hpp" #include "runtime/threadSMR.hpp" @@ -193,6 +194,13 @@ void MountUnmountDisabler::end_transition(JavaThread* current, oop vthread, bool } } +// disable transitions for one virtual thread +// disable transitions for all threads if thread is nullptr or a platform thread +MountUnmountDisabler::MountUnmountDisabler(jthread thread) + : MountUnmountDisabler(JNIHandles::resolve_external_guard(thread)) +{ +} + // disable transitions for one virtual thread // disable transitions for all threads if thread is nullptr or a platform thread MountUnmountDisabler::MountUnmountDisabler(oop thread_oop) diff --git a/src/hotspot/share/runtime/mountUnmountDisabler.hpp b/src/hotspot/share/runtime/mountUnmountDisabler.hpp index 2ebb09734a645..4c9b6124b46bc 100644 --- a/src/hotspot/share/runtime/mountUnmountDisabler.hpp +++ b/src/hotspot/share/runtime/mountUnmountDisabler.hpp @@ -58,6 +58,7 @@ class MountUnmountDisabler : public AnyObj { public: MountUnmountDisabler(bool exlusive = false); MountUnmountDisabler(oop thread_oop); + MountUnmountDisabler(jthread thread); ~MountUnmountDisabler(); static int global_vthread_transition_disable_count();