453 if (exit_hook != NULL) {
454 // exit hook should exit.
455 exit_hook(_exit_code);
456 // ... but if it didn't, we must do it here
457 vm_direct_exit(_exit_code);
458 } else {
459 vm_direct_exit(_exit_code);
460 }
461 }
462
463
464 void VM_Exit::wait_if_vm_exited() {
465 if (_vm_exited &&
466 ThreadLocalStorage::get_thread_slow() != _shutdown_thread) {
467 // _vm_exited is set at safepoint, and the Threads_lock is never released
468 // we will block here until the process dies
469 Threads_lock->lock_without_safepoint_check();
470 ShouldNotReachHere();
471 }
472 }
|
453 if (exit_hook != NULL) {
454 // exit hook should exit.
455 exit_hook(_exit_code);
456 // ... but if it didn't, we must do it here
457 vm_direct_exit(_exit_code);
458 } else {
459 vm_direct_exit(_exit_code);
460 }
461 }
462
463
464 void VM_Exit::wait_if_vm_exited() {
465 if (_vm_exited &&
466 ThreadLocalStorage::get_thread_slow() != _shutdown_thread) {
467 // _vm_exited is set at safepoint, and the Threads_lock is never released
468 // we will block here until the process dies
469 Threads_lock->lock_without_safepoint_check();
470 ShouldNotReachHere();
471 }
472 }
473
474 void VM_PrintCompileQueue::doit() {
475 CompileBroker::print_compile_queues(_out);
476 }
477
478 void VM_PrintCodeList::doit() {
479 CodeCache::print_codelist(_out);
480 }
481
482 void VM_PrintCodeCache::doit() {
483 CodeCache::print_layout(_out);
484 }
|