462 vm_direct_exit(_exit_code);
463 }
464 }
465
466
467 void VM_Exit::wait_if_vm_exited() {
468 if (_vm_exited &&
469 ThreadLocalStorage::get_thread_slow() != _shutdown_thread) {
470 // _vm_exited is set at safepoint, and the Threads_lock is never released
471 // we will block here until the process dies
472 Threads_lock->lock_without_safepoint_check();
473 ShouldNotReachHere();
474 }
475 }
476
477 void VM_PrintCompileQueue::doit() {
478 CompileBroker::print_compile_queues(_out);
479 }
480
481 void VM_PrintCodeList::doit() {
482 CodeCache::print_codelist(_out);
483 }
484
485 void VM_PrintCodeCache::doit() {
486 CodeCache::print_layout(_out);
487 }
|
462 vm_direct_exit(_exit_code);
463 }
464 }
465
466
467 void VM_Exit::wait_if_vm_exited() {
468 if (_vm_exited &&
469 ThreadLocalStorage::get_thread_slow() != _shutdown_thread) {
470 // _vm_exited is set at safepoint, and the Threads_lock is never released
471 // we will block here until the process dies
472 Threads_lock->lock_without_safepoint_check();
473 ShouldNotReachHere();
474 }
475 }
476
477 void VM_PrintCompileQueue::doit() {
478 CompileBroker::print_compile_queues(_out);
479 }
480
481 void VM_PrintCodeList::doit() {
482 MutexLockerEx locker(CodeCache_lock, Mutex::_no_safepoint_check_flag);
483 CodeCache::print_codelist(_out);
484 }
485
486 void VM_PrintCodeCache::doit() {
487 MutexLockerEx locker(CodeCache_lock, Mutex::_no_safepoint_check_flag);
488 CodeCache::print_layout(_out);
489 }
|