jvmti.cc (_Jv_JVMTI_GetAllThreads): New function.
2007-01-16 Kyle Galloway <kgallowa@redhat.com> * jvmti.cc (_Jv_JVMTI_GetAllThreads): New function. * testsuite/libjava.jvmti/getallthreads.java: New test. * testsuite/libjava.jvmti/natgetallthreads.cc: Ditto. * testsuite/libjava.jvmti/getallthreads.out: Ditto. * testsuite/libjava.jvmti/getallthreads.h: Ditto. * testsuite/libjava.jvmti/getallthreads.jar: Ditto. From-SVN: r120827
This commit is contained in:
parent
878aa81717
commit
05794ce850
7 changed files with 250 additions and 1 deletions
80
libjava/testsuite/libjava.jvmti/getallthreads.java
Normal file
80
libjava/testsuite/libjava.jvmti/getallthreads.java
Normal file
|
@ -0,0 +1,80 @@
|
|||
// Test JVMTI GetAllThreads
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class getallthreads extends Thread
|
||||
{
|
||||
public static int thread_num;
|
||||
public static ArrayList threads;
|
||||
|
||||
public int ex_frames;
|
||||
public boolean done = false;
|
||||
|
||||
public static native void do_getallthreads_tests ();
|
||||
|
||||
public void run ()
|
||||
{
|
||||
ex_frames = thread_num;
|
||||
thread_num++;
|
||||
|
||||
if (ex_frames > 0)
|
||||
{
|
||||
if ((ex_frames % 2) == 0)
|
||||
placeholder ();
|
||||
else
|
||||
natPlaceholder ();
|
||||
}
|
||||
else
|
||||
runner ();
|
||||
}
|
||||
|
||||
public native void natPlaceholder ();
|
||||
public native void natRunner ();
|
||||
|
||||
public void placeholder ()
|
||||
{
|
||||
ex_frames--;
|
||||
|
||||
if (ex_frames > 0)
|
||||
{
|
||||
if ((thread_num % 2) == 0)
|
||||
placeholder ();
|
||||
else
|
||||
natPlaceholder ();
|
||||
}
|
||||
else
|
||||
runner ();
|
||||
}
|
||||
|
||||
public void runner ()
|
||||
{
|
||||
done = true;
|
||||
while (done)
|
||||
yield ();
|
||||
}
|
||||
|
||||
public static void main (String[] args)
|
||||
{
|
||||
System.out.println ("JVMTI GetAllThreads tests");
|
||||
threads = new ArrayList (20);
|
||||
|
||||
getallthreads t;
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
{
|
||||
t = new getallthreads ();
|
||||
threads.add (t);
|
||||
t.start ();
|
||||
while (!t.done)
|
||||
yield ();
|
||||
}
|
||||
|
||||
do_getallthreads_tests ();
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
{
|
||||
t = (getallthreads) threads.get(i);
|
||||
t.done = false;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue