25 /*
26 * @test HandshakeWalkExitTest
27 * @summary This test tries to stress the handshakes with new and exiting threads
28 * @library /testlibrary /test/lib
29 * @build HandshakeWalkExitTest
30 * @run main ClassFileInstaller sun.hotspot.WhiteBox
31 * sun.hotspot.WhiteBox$WhiteBoxPermission
32 * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI HandshakeWalkExitTest
33 */
34
35 import jdk.test.lib.Asserts;
36 import sun.hotspot.WhiteBox;
37
38 public class HandshakeWalkExitTest implements Runnable {
39
40 @Override
41 public void run() {
42 }
43
44 static volatile boolean exit_now = false;
45 static Thread[] threads;
46
47 public static void main(String... args) throws Exception {
48 int testRuns = 100;
49 int testThreads = 500;
50
51 HandshakeWalkExitTest test = new HandshakeWalkExitTest();
52
53 threads = new Thread[64];
54
55 Runnable hser = new Runnable(){
56 public void run(){
57 WhiteBox wb = WhiteBox.getWhiteBox();
58 while(!exit_now) {
59 wb.handshakeWalkStack(null, true);
60 try { Thread.sleep(1); } catch(Exception e) {}
61 }
62 }
63 };
64 Thread hst = new Thread(hser);
65 hst.start();
66 for (int k = 0; k<testRuns ; k++) {
67 Thread[] threads = new Thread[testThreads];
68 for (int i = 0; i<threads.length ; i++) {
69 threads[i] = new Thread(test);
70 threads[i].start();
71 }
72 }
73 exit_now = true;
74 hst.join();
75 }
76 }
|
25 /*
26 * @test HandshakeWalkExitTest
27 * @summary This test tries to stress the handshakes with new and exiting threads
28 * @library /testlibrary /test/lib
29 * @build HandshakeWalkExitTest
30 * @run main ClassFileInstaller sun.hotspot.WhiteBox
31 * sun.hotspot.WhiteBox$WhiteBoxPermission
32 * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI HandshakeWalkExitTest
33 */
34
35 import jdk.test.lib.Asserts;
36 import sun.hotspot.WhiteBox;
37
38 public class HandshakeWalkExitTest implements Runnable {
39
40 @Override
41 public void run() {
42 }
43
44 static volatile boolean exit_now = false;
45
46 public static void main(String... args) throws Exception {
47 int testRuns = 20;
48 int testThreads = 128;
49
50 HandshakeWalkExitTest test = new HandshakeWalkExitTest();
51
52 Runnable hser = new Runnable(){
53 public void run(){
54 WhiteBox wb = WhiteBox.getWhiteBox();
55 while(!exit_now) {
56 wb.handshakeWalkStack(null, true);
57 }
58 }
59 };
60 Thread hst = new Thread(hser);
61 hst.start();
62 for (int k = 0; k<testRuns ; k++) {
63 Thread[] threads = new Thread[testThreads];
64 for (int i = 0; i<threads.length ; i++) {
65 threads[i] = new Thread(test);
66 threads[i].start();
67 }
68 }
69 exit_now = true;
70 hst.join();
71 }
72 }
|