From 46be0cea68aeda4cacca63fe218ade432df65d45 Mon Sep 17 00:00:00 2001 From: zgu Date: Fri, 11 Jan 2013 12:30:54 -0500 Subject: [PATCH] 8005936: PrintNMTStatistics doesn't work for normal JVM exit Summary: Moved NMT shutdown code to JVM exit handler to ensure NMT statistics is printed when PrintNMTStatistics is enabled Reviewed-by: acorn, dholmes, coleenp --- src/share/vm/runtime/java.cpp | 4 ++++ src/share/vm/runtime/thread.cpp | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/share/vm/runtime/java.cpp b/src/share/vm/runtime/java.cpp index ad6399495..fb26ad9dd 100644 --- a/src/share/vm/runtime/java.cpp +++ b/src/share/vm/runtime/java.cpp @@ -542,6 +542,10 @@ void before_exit(JavaThread * thread) { BeforeExit_lock->notify_all(); } + // Shutdown NMT before exit. Otherwise, + // it will run into trouble when system destroys static variables. + MemTracker::shutdown(MemTracker::NMT_normal); + #undef BEFORE_EXIT_NOT_RUN #undef BEFORE_EXIT_RUNNING #undef BEFORE_EXIT_DONE diff --git a/src/share/vm/runtime/thread.cpp b/src/share/vm/runtime/thread.cpp index db3cace3d..971f4f8da 100644 --- a/src/share/vm/runtime/thread.cpp +++ b/src/share/vm/runtime/thread.cpp @@ -4011,10 +4011,6 @@ bool Threads::destroy_vm() { Mutex::_as_suspend_equivalent_flag); } - // Shutdown NMT before exit. Otherwise, - // it will run into trouble when system destroys static variables. - MemTracker::shutdown(MemTracker::NMT_normal); - // Hang forever on exit if we are reporting an error. if (ShowMessageBoxOnError && is_error_reported()) { os::infinite_sleep(); -- GitLab