< prev index next >

test/hotspot/jtreg/containers/docker/EventGeneratorLoop.java

Print this page

        

@@ -18,18 +18,20 @@
  *
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import jdk.jfr.Event;
 import jdk.jfr.Description;
 import jdk.jfr.Label;
 
 
-// This class generates simple event in a loop
-// for a specified time.
-// Pass the time in seconds as a parameter.
+// This class generates simple event in a loop for a specified time.
 public class EventGeneratorLoop {
 
     @Label("SimpleEvent")
     @Description("Simple custom event")
     static class SimpleEvent extends Event {

@@ -39,22 +41,35 @@
         @Label("Count")
         int count;
     }
 
 
+    // Arguments:
+    // - time to run (in seconds) - mandatory
+    // - full file path to signal the start of main - optional
     public static void main(String[] args) throws Exception {
         if ((args.length < 1) || (args[0] == null)) {
             throw new IllegalArgumentException("Expecting one argument: time to run (seconds)");
         }
         int howLong = Integer.parseInt(args[0]);
 
+        if ((args.length > 1) && (args[1] != null)) {
+            signalStartOfMain(args[1]);
+        }
+
         for (int i=0; i < howLong; i++) {
             SimpleEvent ev = new SimpleEvent();
             ev.msg = "Hello";
             ev.count = i;
             ev.commit();
 
             try { Thread.sleep(1000); } catch (InterruptedException e) {}
             System.out.print(".");
         }
     }
+
+    private static void signalStartOfMain(String fileName) throws Exception {
+        Path p = Paths.get(fileName);
+        Files.createFile(p);
+        p.toFile().deleteOnExit();
+}
 }
< prev index next >