re PR java/27908 (VMSecureRandom generateSeed infinite loop? (Regression))
authorAndrew Haley <aph@redhat.com>
Mon, 12 Jun 2006 13:37:54 +0000 (13:37 +0000)
committerAndrew Haley <aph@gcc.gnu.org>
Mon, 12 Jun 2006 13:37:54 +0000 (13:37 +0000)
2006-06-12  Andrew Haley  <aph@redhat.com>

        * testsuite/libjava.lang/PR27908.out: New.
        * testsuite/libjava.lang/PR27908.java: New.

From-SVN: r114568

libjava/ChangeLog
libjava/testsuite/libjava.lang/PR27908.java [new file with mode: 0644]
libjava/testsuite/libjava.lang/PR27908.out [new file with mode: 0644]

index be95312a8636f7f5fc064c0f0dc51acbc76acd8d..918037f0e72798b9f3f49aed19ce556cac891a96 100644 (file)
@@ -1,3 +1,8 @@
+2006-06-12  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libjava.lang/PR27908.out: New.
+       * testsuite/libjava.lang/PR27908.java: New.
+
 2006-06-10  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
        * configure.ac (ac_configure_args): Add --disable-plugin.
diff --git a/libjava/testsuite/libjava.lang/PR27908.java b/libjava/testsuite/libjava.lang/PR27908.java
new file mode 100644 (file)
index 0000000..66e7fca
--- /dev/null
@@ -0,0 +1,80 @@
+class PR27908
+{
+  public static void main (String[] argv)
+  {
+    run1 r1 = new run1();
+    run2 r2 = new run2();
+    run3 r3 = new run3();
+
+    new Thread (r1).start();
+    new Thread (r2).start();
+    new Thread (r3).start();
+
+    Thread.yield();
+
+    r1.stop();
+    r2.stop();
+    r3.stop();
+  }
+
+  private static class run1 implements Runnable
+  {
+    volatile int counter;
+    volatile boolean running;
+
+    public void run ()
+    {
+      counter = 0;
+      running = true;
+      while (running)
+        counter++;
+      System.out.println ("run1 exits!");
+    }
+
+    private void stop ()
+    {
+      running = false;
+    }
+  }
+
+  private static class run2 implements Runnable
+  {
+    volatile int counter;
+    boolean running;
+
+    public void run ()
+    {
+      counter = 0;
+      running = true;
+      while (running)
+        counter++;
+      System.out.println ("run2 exits!");
+    }
+
+    private void stop ()
+    {
+      running = false;
+    }
+  }
+
+  static class run3 implements Runnable
+  {
+    volatile int counter;
+    private volatile boolean running;
+
+    public void run ()
+    {
+      counter = 0;
+      running = true;
+      while (running)
+        counter++;
+      System.out.println ("run3 exits!");
+    }
+
+    void stop ()
+    {
+      running = false;
+    }
+  }
+
+}
diff --git a/libjava/testsuite/libjava.lang/PR27908.out b/libjava/testsuite/libjava.lang/PR27908.out
new file mode 100644 (file)
index 0000000..81bc2b2
--- /dev/null
@@ -0,0 +1,3 @@
+run2 exits!
+run3 exits!
+run1 exits!