< prev index next >

src/hotspot/share/prims/jvmtiThreadState.cpp

Print this page

 650 
 651 void
 652 JvmtiVTMSTransitionDisabler::VTMS_unmount_begin(jobject vthread, bool last_unmount) {
 653   JavaThread* thread = JavaThread::current();
 654 
 655   assert(!thread->is_in_tmp_VTMS_transition(), "sanity check");
 656   assert(!thread->is_in_VTMS_transition(), "sanity check");
 657 
 658   start_VTMS_transition(vthread, /* is_mount */ false);
 659   if (!last_unmount) {
 660     thread->rebind_to_jvmti_thread_state_of(thread->threadObj());
 661   }
 662 }
 663 
 664 void
 665 JvmtiVTMSTransitionDisabler::VTMS_unmount_end(jobject vthread) {
 666   JavaThread* thread = JavaThread::current();
 667   assert(thread->is_in_VTMS_transition(), "sanity check");
 668   assert(!thread->is_in_tmp_VTMS_transition(), "sanity check");
 669   finish_VTMS_transition(vthread, /* is_mount */ false);






 670 }
 671 
 672 
 673 //
 674 // Virtual Threads Suspend/Resume management
 675 //
 676 
 677 JvmtiVTSuspender::SR_Mode
 678 JvmtiVTSuspender::_SR_mode = SR_none;
 679 
 680 VirtualThreadList*
 681 JvmtiVTSuspender::_suspended_list = new VirtualThreadList();
 682 
 683 VirtualThreadList*
 684 JvmtiVTSuspender::_not_suspended_list = new VirtualThreadList();
 685 
 686 void
 687 JvmtiVTSuspender::register_all_vthreads_suspend() {
 688   MonitorLocker ml(JvmtiVTMSTransition_lock);
 689 

 650 
 651 void
 652 JvmtiVTMSTransitionDisabler::VTMS_unmount_begin(jobject vthread, bool last_unmount) {
 653   JavaThread* thread = JavaThread::current();
 654 
 655   assert(!thread->is_in_tmp_VTMS_transition(), "sanity check");
 656   assert(!thread->is_in_VTMS_transition(), "sanity check");
 657 
 658   start_VTMS_transition(vthread, /* is_mount */ false);
 659   if (!last_unmount) {
 660     thread->rebind_to_jvmti_thread_state_of(thread->threadObj());
 661   }
 662 }
 663 
 664 void
 665 JvmtiVTMSTransitionDisabler::VTMS_unmount_end(jobject vthread) {
 666   JavaThread* thread = JavaThread::current();
 667   assert(thread->is_in_VTMS_transition(), "sanity check");
 668   assert(!thread->is_in_tmp_VTMS_transition(), "sanity check");
 669   finish_VTMS_transition(vthread, /* is_mount */ false);
 670 
 671   if (JvmtiExport::should_post_vthread_unmount() && thread->jvmti_unmount_event_pending()) {
 672     assert(java_lang_VirtualThread::is_preempted(JNIHandles::resolve(vthread)), "should be marked preempted");
 673     JvmtiExport::post_vthread_unmount(vthread);
 674     thread->set_jvmti_unmount_event_pending(false);
 675   }
 676 }
 677 
 678 
 679 //
 680 // Virtual Threads Suspend/Resume management
 681 //
 682 
 683 JvmtiVTSuspender::SR_Mode
 684 JvmtiVTSuspender::_SR_mode = SR_none;
 685 
 686 VirtualThreadList*
 687 JvmtiVTSuspender::_suspended_list = new VirtualThreadList();
 688 
 689 VirtualThreadList*
 690 JvmtiVTSuspender::_not_suspended_list = new VirtualThreadList();
 691 
 692 void
 693 JvmtiVTSuspender::register_all_vthreads_suspend() {
 694   MonitorLocker ml(JvmtiVTMSTransition_lock);
 695 
< prev index next >