< prev index next >

src/hotspot/share/prims/jvmtiThreadState.cpp

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved.
+  * Copyright (c) 2003, 2024, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

@@ -665,10 +665,16 @@
  void
  JvmtiVTMSTransitionDisabler::VTMS_unmount_end(jobject vthread) {
    JavaThread* thread = JavaThread::current();
    assert(thread->is_in_VTMS_transition(), "sanity check");
    finish_VTMS_transition(vthread, /* is_mount */ false);
+ 
+   if (thread->pending_jvmti_unmount_event()) {
+     assert(java_lang_VirtualThread::is_preempted(JNIHandles::resolve(vthread)), "should be marked preempted");
+     JvmtiExport::post_vthread_unmount(vthread);
+     thread->set_pending_jvmti_unmount_event(false);
+   }
  }
  
  
  //
  // Virtual Threads Suspend/Resume management
< prev index next >