# HG changeset patch # User zgu # Date 1357925454 18000 # Node ID e0cf9af8978e6a09fd8e8773336631f10f645755 # Parent 0c93d4818214c9407ca9c855ec21016be00f716d 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 diff -r 0c93d4818214 -r e0cf9af8978e src/share/vm/runtime/java.cpp --- a/src/share/vm/runtime/java.cpp Tue Jan 08 15:47:23 2013 -0800 +++ b/src/share/vm/runtime/java.cpp Fri Jan 11 12:30:54 2013 -0500 @@ -542,6 +542,10 @@ 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 -r 0c93d4818214 -r e0cf9af8978e src/share/vm/runtime/thread.cpp --- a/src/share/vm/runtime/thread.cpp Tue Jan 08 15:47:23 2013 -0800 +++ b/src/share/vm/runtime/thread.cpp Fri Jan 11 12:30:54 2013 -0500 @@ -4011,10 +4011,6 @@ 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();