2362N/A * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 0N/A * published by the Free Software Foundation. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 0N/A * @summary Basic Test for the following reset methods: 0N/A * - ThreadMXBean.resetPeakThreadCount() 0N/A * @author Mandy Chung 0N/A * @build ResetPeakThreadCount 0N/A // initial number of new threads started 0N/A // Terminate half of the threads started 0N/A // start new threads but expected the peak unchanged 0N/A // peak thread count reset before starting new threads 0N/A // barrier for threads communication 0N/A // This test does not expect any threads to be created 0N/A // by the test harness after main() is invoked. 0N/A // The checkThreadCount() method is to produce more 0N/A // diagnostic information in case any unexpected test failure occur. 0N/A // start DAEMON_THREADS_1 number of threads 0N/A // terminate TERMINATE_1 number of threads and reset peak 0N/A // start DAEMON_THREADS_2 number of threads 0N/A // expected peak is unchanged 0N/A // start DAEMON_THREADS_3 number of threads 0N/A // terminate TERMINATE_2 number of threads and reset peak 0N/A // get current peak thread count 0N/A // Start threads and wait to be sure they all are alive 0N/A // wait until all threads have started. 0N/A // get peak thread count after daemon threads have started 0N/A " Expected to be == previous peak = " +
peak1 +
" + " +
0N/A // wait until the current thread count gets incremented 0N/A // get current peak thread count 0N/A // Stop daemon threads and wait to be sure they all are dead 0N/A // wait until daemon threads terminated. 0N/A // get peak thread count after daemon threads have terminated 0N/A // assuming no system thread is added 0N/A " Expected to be = previous peak = " +
peak1);
0N/A // wait until the current thread count gets decremented 0N/A // Nightly testing showed some intermittent failure. 0N/A // Check here to get diagnostic information if some strange 0N/A // Reset peak thread count 0N/A // The MyThread thread lives as long as correspondent live[i] value is true 0N/A // signal about to exit