From: Andrew Haley Date: Tue, 4 Sep 2007 17:54:56 +0000 (+0000) Subject: re PR java/27908 (VMSecureRandom generateSeed infinite loop? (Regression)) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0854f1891d6f327f1a3625f3aaaab3c595377569;p=gcc.git re PR java/27908 (VMSecureRandom generateSeed infinite loop? (Regression)) 2007-09-04 Andrew Haley PR java/27908 * testsuite/libjava.lang/PR27908.java ({run1,run2,run3}.isRunning): New Method. (main): Fix race condition. From-SVN: r128094 --- diff --git a/libjava/testsuite/libjava.lang/Foo.class b/libjava/testsuite/libjava.lang/Foo.class new file mode 100644 index 00000000000..b51c95fceb6 Binary files /dev/null and b/libjava/testsuite/libjava.lang/Foo.class differ diff --git a/libjava/testsuite/libjava.lang/PR27908.jar b/libjava/testsuite/libjava.lang/PR27908.jar index e2804073642..1ec1127ddcb 100644 Binary files a/libjava/testsuite/libjava.lang/PR27908.jar and b/libjava/testsuite/libjava.lang/PR27908.jar differ diff --git a/libjava/testsuite/libjava.lang/PR27908.java b/libjava/testsuite/libjava.lang/PR27908.java index 09f96546f98..addb1d7720f 100644 --- a/libjava/testsuite/libjava.lang/PR27908.java +++ b/libjava/testsuite/libjava.lang/PR27908.java @@ -13,7 +13,8 @@ class PR27908 (t2 = new Thread (r2)).start(); (t3 = new Thread (r3)).start(); - Thread.yield(); + while (! (r1.isRunning() && r2.isRunning() && r3.isRunning())) + Thread.yield(); r1.stop(); r2.stop(); @@ -45,6 +46,11 @@ class PR27908 { running = false; } + + public boolean isRunning() + { + return running; + } } private static class run2 implements Runnable @@ -64,6 +70,11 @@ class PR27908 { running = false; } + + public boolean isRunning() + { + return running; + } } static class run3 implements Runnable @@ -83,5 +94,10 @@ class PR27908 { running = false; } + + public boolean isRunning() + { + return running; + } } } diff --git a/libjava/testsuite/libjava.lang/WalkerTest.jar b/libjava/testsuite/libjava.lang/WalkerTest.jar new file mode 100644 index 00000000000..64faf04df20 Binary files /dev/null and b/libjava/testsuite/libjava.lang/WalkerTest.jar differ diff --git a/libjava/testsuite/libjava.lang/WalkerTest.java b/libjava/testsuite/libjava.lang/WalkerTest.java new file mode 100644 index 00000000000..f4e41fecfa0 --- /dev/null +++ b/libjava/testsuite/libjava.lang/WalkerTest.java @@ -0,0 +1,15 @@ +class Foo +{ + Class bar() + { + return gnu.classpath.VMStackWalker.getCallingClass(); + } +} + +public class WalkerTest +{ + public static void main(String[] argv) + { + System.out.println(new Foo().bar()); + } +} diff --git a/libjava/testsuite/libjava.lang/WalkerTest.out b/libjava/testsuite/libjava.lang/WalkerTest.out new file mode 100644 index 00000000000..9b8eb003024 --- /dev/null +++ b/libjava/testsuite/libjava.lang/WalkerTest.out @@ -0,0 +1 @@ +class WalkerTest