re PR java/27908 (VMSecureRandom generateSeed infinite loop? (Regression))
2006-06-19 Andrew Haley <aph@redhat.com> * testsuite/libjava.lang/PR27908.out: New. * testsuite/libjava.lang/PR27908.java: New. From-SVN: r114779
This commit is contained in:
parent
fe4e7c6527
commit
dfa52cf9d1
3 changed files with 92 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2006-06-19 Andrew Haley <aph@redhat.com>
|
||||||
|
|
||||||
|
* testsuite/libjava.lang/PR27908.out: New.
|
||||||
|
* testsuite/libjava.lang/PR27908.java: New.
|
||||||
|
|
||||||
2006-06-19 Keith Seitz <keiths@redhat.com>
|
2006-06-19 Keith Seitz <keiths@redhat.com>
|
||||||
|
|
||||||
* include/posix-threads.h (_Jv_ThreadDebugSuspend): Declare.
|
* include/posix-threads.h (_Jv_ThreadDebugSuspend): Declare.
|
||||||
|
|
87
libjava/testsuite/libjava.lang/PR27908.java
Normal file
87
libjava/testsuite/libjava.lang/PR27908.java
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
class PR27908
|
||||||
|
{
|
||||||
|
public static void main (String[] argv)
|
||||||
|
throws InterruptedException
|
||||||
|
{
|
||||||
|
run1 r1 = new run1();
|
||||||
|
run2 r2 = new run2();
|
||||||
|
run3 r3 = new run3();
|
||||||
|
|
||||||
|
Thread t1, t2, t3;
|
||||||
|
|
||||||
|
(t1 = new Thread (r1)).start();
|
||||||
|
(t2 = new Thread (r2)).start();
|
||||||
|
(t3 = new Thread (r3)).start();
|
||||||
|
|
||||||
|
Thread.yield();
|
||||||
|
|
||||||
|
r1.stop();
|
||||||
|
r2.stop();
|
||||||
|
r3.stop();
|
||||||
|
|
||||||
|
Thread.sleep(5000);
|
||||||
|
|
||||||
|
if (t1.isAlive() || t2.isAlive() || t3.isAlive())
|
||||||
|
{
|
||||||
|
System.out.println ("fail");
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class run1 implements Runnable
|
||||||
|
{
|
||||||
|
volatile int counter;
|
||||||
|
volatile boolean running;
|
||||||
|
|
||||||
|
public void run ()
|
||||||
|
{
|
||||||
|
counter = 0;
|
||||||
|
running = true;
|
||||||
|
while (running)
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
|
||||||
|
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++;
|
||||||
|
}
|
||||||
|
|
||||||
|
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++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void stop ()
|
||||||
|
{
|
||||||
|
running = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
0
libjava/testsuite/libjava.lang/PR27908.out
Normal file
0
libjava/testsuite/libjava.lang/PR27908.out
Normal file
Loading…
Add table
Reference in a new issue