484 } else { 485 vm_direct_exit(_exit_code); 486 } 487 } 488 489 490 void VM_Exit::wait_if_vm_exited() { 491 if (_vm_exited && 492 Thread::current_or_null() != _shutdown_thread) { 493 // _vm_exited is set at safepoint, and the Threads_lock is never released 494 // we will block here until the process dies 495 Threads_lock->lock_without_safepoint_check(); 496 ShouldNotReachHere(); 497 } 498 } 499 500 void VM_PrintCompileQueue::doit() { 501 CompileBroker::print_compile_queues(_out); 502 } 503 504 #if INCLUDE_SERVICES 505 void VM_PrintClassHierarchy::doit() { 506 KlassHierarchy::print_class_hierarchy(_out, _print_interfaces, _print_subclasses, _classname); 507 } 508 #endif | 484 } else { 485 vm_direct_exit(_exit_code); 486 } 487 } 488 489 490 void VM_Exit::wait_if_vm_exited() { 491 if (_vm_exited && 492 Thread::current_or_null() != _shutdown_thread) { 493 // _vm_exited is set at safepoint, and the Threads_lock is never released 494 // we will block here until the process dies 495 Threads_lock->lock_without_safepoint_check(); 496 ShouldNotReachHere(); 497 } 498 } 499 500 void VM_PrintCompileQueue::doit() { 501 CompileBroker::print_compile_queues(_out); 502 } 503 504 void VM_VTBufferStats::doit() { 505 Threads::print_vt_buffer_stats_on(_out); 506 } 507 508 #if INCLUDE_SERVICES 509 void VM_PrintClassHierarchy::doit() { 510 KlassHierarchy::print_class_hierarchy(_out, _print_interfaces, _print_subclasses, _classname); 511 } 512 #endif |