< prev index next >

test/jdk/com/sun/management/HotSpotDiagnosticMXBean/DumpThreadsWithEliminatedLock.java

Print this page
*** 41,10 ***
--- 41,11 ---
  import java.lang.management.ManagementFactory;
  import java.nio.file.Files;
  import java.nio.file.Path;
  import java.time.Instant;
  import java.util.List;
+ import java.util.concurrent.CountDownLatch;
  import java.util.concurrent.ThreadFactory;
  import java.util.concurrent.atomic.AtomicBoolean;
  import java.util.concurrent.atomic.AtomicReference;
  import java.util.stream.Stream;
  import com.sun.management.HotSpotDiagnosticMXBean;

*** 71,22 ***
--- 72,25 ---
              VThreadRunner.ensureParallelism(2);
          }
  
          // A thread that spins creating and adding to a StringBuffer. StringBuffer is
          // synchronized, assume object will be scalar replaced and the lock eliminated.
+         var started = new CountDownLatch(1);
          var done = new AtomicBoolean();
          var ref = new AtomicReference<String>();
          Thread thread = factory.newThread(() -> {
+             started.countDown();
              while (!done.get()) {
                  StringBuffer sb = new StringBuffer();
                  sb.append(System.currentTimeMillis());
                  String s = sb.toString();
                  ref.set(s);
              }
          });
          try {
              thread.start();
+             started.await();
              if (plain) {
                  testPlainFormat();
              } else {
                  testJsonFormat(thread.threadId());
              }
< prev index next >