< prev index next >

test/hotspot/jtreg/runtime/handshake/HandshakeDirectTest.java

Print this page

        

@@ -22,10 +22,11 @@
  *
  */
 
 /*
  * @test HandshakeDirectTest
+ * @bug 8240918
  * @summary This test tries to stress direct handshakes between threads while suspending them.
  * @library /testlibrary /test/lib
  * @build HandshakeDirectTest
  * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:+SafepointALot -XX:BiasedLockingDecayTime=100000000 -XX:BiasedLockingBulkRebiasThreshold=1000000 -XX:BiasedLockingBulkRevokeThreshold=1000000 HandshakeDirectTest
  * @run main/othervm -XX:+UnlockDiagnosticVMOptions -XX:GuaranteedSafepointInterval=10 -XX:+HandshakeALot -XX:+SafepointALot -XX:BiasedLockingDecayTime=100000000 -XX:BiasedLockingBulkRebiasThreshold=1000000 -XX:BiasedLockingBulkRevokeThreshold=1000000 HandshakeDirectTest

@@ -58,12 +59,13 @@
                     }
                     handshakeSem[me].release();
                 }
 
                 // Handshake directly some other worker
-                int handshakee = ThreadLocalRandom.current().nextInt(0, WORKING_THREADS-1);
+                int handshakee = ThreadLocalRandom.current().nextInt(0, WORKING_THREADS - 1);
                 if (handshakee == me) {
+                    // Pick another thread instead of me.
                     handshakee = handshakee != 0 ? handshakee - 1 : handshakee + 1;
                 }
                 handshakeSem[handshakee].acquire();
                 if (isBiased[handshakee]) {
                     // Revoke biased lock

@@ -106,11 +108,11 @@
         // Fire-up suspend-resume thread
         Thread suspendResumeThread = new Thread() {
             @Override
             public void run() {
                 while (true) {
-                    int i = ThreadLocalRandom.current().nextInt(0, WORKING_THREADS-1);
+                    int i = ThreadLocalRandom.current().nextInt(0, WORKING_THREADS - 1);
                     workingThreads[i].suspend();
                     try {
                         Thread.sleep(1); // sleep for 1 ms
                     } catch(InterruptedException ie) {
                     }
< prev index next >