123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- // 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;
- }
- }
- }
|